> ## Documentation Index
> Fetch the complete documentation index at: https://lightdash-mintlify-9d6f9427.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Upsert SQL chart as code

> Upserts an SQL chart from code representation



## OpenAPI

````yaml https://raw.githubusercontent.com/lightdash/lightdash/refs/heads/main/packages/backend/src/generated/swagger.json post /api/v1/projects/{projectUuid}/sqlCharts/{slug}/code
openapi: 3.0.0
info:
  title: Lightdash API
  version: 0.3249.0
  description: >
    Open API documentation for all public Lightdash API endpoints. #
    Authentication Before you get started, you might need to create a Personal
    Access Token to authenticate via the API. You can create a token by
    following this guide: https://docs.lightdash.com/references/personal_tokens
  license:
    name: MIT
  contact:
    name: Lightdash Support
    email: support@lightdash.com
    url: https://docs.lightdash.com/help-and-contact/contact/contact_info/
servers:
  - url: /
security: []
tags:
  - name: My Account
    description: These routes allow users to manage their own user account.
  - name: Organizations
    description: >-
      Each user is a member of a single organization. These routes allow users
      to manage their organization. Most actions are only available to admin
      users.
  - name: Projects
    description: >-
      Projects belong to a single organization. These routes allow users to
      manage their projects, browse content, and execute queries. Users inside
      an organization might have access to a project from an organization-level
      role or they might be granted access to a project directly.
  - name: Spaces
    description: >-
      Spaces allow you to organize charts and dashboards within a project. They
      also allow granular access to content by allowing you to create private
      spaces, which are only accessible to the creator and admins.
  - name: Roles & Permissions
    description: >-
      These routes allow users to manage roles and permissions for their
      organization.
    externalDocs:
      url: https://docs.lightdash.com/references/roles
  - name: Query
    description: >-
      These routes allow users to execute and manage queries against their data
      warehouse. This includes metric queries, SQL queries, and retrieving query
      results.
paths:
  /api/v1/projects/{projectUuid}/sqlCharts/{slug}/code:
    post:
      tags:
        - Projects
      summary: Upsert SQL chart as code
      description: Upserts an SQL chart from code representation
      operationId: upsertSqlChartAsCode
      parameters:
        - in: path
          name: projectUuid
          required: true
          schema:
            type: string
        - in: path
          name: slug
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Omit_SqlChartAsCode.config-or-description_
                - properties:
                    description:
                      type: string
                      nullable: true
                    config:
                      $ref: '#/components/schemas/AnyType'
                    spaceNames:
                      $ref: '#/components/schemas/Record_string.string_'
                    force:
                      type: boolean
                    publicSpaceCreate:
                      type: boolean
                    skipSpaceCreate:
                      type: boolean
                  required:
                    - config
                  type: object
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSqlChartAsCodeUpsertResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
components:
  schemas:
    Omit_SqlChartAsCode.config-or-description_:
      $ref: >-
        #/components/schemas/Pick_SqlChartAsCode.Exclude_keyofSqlChartAsCode.config-or-description__
      description: Construct a type with the properties of T except for those in type K.
    AnyType:
      description: |-
        This AnyType is an alias for any
        The goal is to make it easier to identify any type in the codebase
        without having to eslint-disable all the time
        These are only used on legacy `any` types, don't use it for new types.
        This is added on a separate file to avoid circular dependencies.
    Record_string.string_:
      properties: {}
      additionalProperties:
        type: string
      type: object
      description: Construct a type with a set of properties K of type T
    ApiSqlChartAsCodeUpsertResponse:
      properties:
        results:
          $ref: '#/components/schemas/PromotionChanges'
        status:
          type: string
          enum:
            - ok
          nullable: false
      required:
        - results
        - status
      type: object
    ApiErrorPayload:
      properties:
        error:
          properties:
            data:
              $ref: '#/components/schemas/AnyType'
              description: Optional data containing details of the error
            message:
              type: string
              description: A friendly message summarising the error
            name:
              type: string
              description: Unique name for the type of error
            statusCode:
              type: number
              format: integer
              description: HTTP status code
          required:
            - name
            - statusCode
          type: object
        status:
          type: string
          enum:
            - error
          nullable: false
      required:
        - error
        - status
      type: object
      description: |-
        The Error object is returned from the api any time there is an error.
        The message contains
    Pick_SqlChartAsCode.Exclude_keyofSqlChartAsCode.config-or-description__:
      properties:
        name:
          type: string
        limit:
          type: number
          format: double
        slug:
          type: string
        updatedAt:
          type: string
          format: date-time
        version:
          type: number
          format: double
        contentType:
          $ref: '#/components/schemas/ContentAsCodeType.SQL_CHART'
        spaceSlug:
          type: string
        downloadedAt:
          type: string
          format: date-time
        sql:
          type: string
        chartKind:
          $ref: '#/components/schemas/ChartKind'
      required:
        - name
        - limit
        - slug
        - version
        - spaceSlug
        - sql
        - chartKind
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    PromotionChanges:
      properties:
        dataApps:
          items:
            properties:
              data:
                $ref: '#/components/schemas/PromotedApp'
              action:
                $ref: '#/components/schemas/PromotionAction'
            required:
              - data
              - action
            type: object
          type: array
        sqlCharts:
          items:
            properties:
              data:
                $ref: '#/components/schemas/PromotedSqlChart'
              action:
                $ref: '#/components/schemas/PromotionAction'
            required:
              - data
              - action
            type: object
          type: array
        charts:
          items:
            properties:
              data:
                $ref: '#/components/schemas/PromotedChart'
              action:
                $ref: '#/components/schemas/PromotionAction'
            required:
              - data
              - action
            type: object
          type: array
        dashboards:
          items:
            properties:
              data:
                $ref: '#/components/schemas/PromotedDashboard'
              action:
                $ref: '#/components/schemas/PromotionAction'
            required:
              - data
              - action
            type: object
          type: array
        spaces:
          items:
            properties:
              data:
                $ref: '#/components/schemas/PromotedSpace'
              action:
                $ref: '#/components/schemas/PromotionAction'
            required:
              - data
              - action
            type: object
          type: array
      required:
        - charts
        - dashboards
        - spaces
      type: object
    ContentAsCodeType.SQL_CHART:
      enum:
        - sql_chart
      type: string
    ChartKind:
      enum:
        - line
        - horizontal_bar
        - vertical_bar
        - scatter
        - area
        - mixed
        - pie
        - table
        - big_number
        - funnel
        - custom
        - treemap
        - gauge
        - map
        - sankey
      type: string
    PromotedApp:
      properties:
        name:
          type: string
        uuid:
          type: string
      required:
        - name
        - uuid
      type: object
    PromotionAction:
      enum:
        - no changes
        - create
        - update
        - delete
      type: string
    PromotedSqlChart:
      properties:
        spacePath:
          type: string
        spaceSlug:
          type: string
        description:
          type: string
          nullable: true
        name:
          type: string
        projectUuid:
          type: string
        slug:
          type: string
        oldUuid:
          type: string
        uuid:
          type: string
      required:
        - spacePath
        - spaceSlug
        - description
        - name
        - projectUuid
        - slug
        - oldUuid
        - uuid
      type: object
    PromotedChart:
      allOf:
        - $ref: '#/components/schemas/SavedChartDAO'
        - properties:
            oldUuid:
              type: string
            spacePath:
              type: string
            spaceSlug:
              type: string
          required:
            - oldUuid
            - spacePath
            - spaceSlug
          type: object
    PromotedDashboard:
      allOf:
        - $ref: '#/components/schemas/DashboardDAO'
        - properties:
            spacePath:
              type: string
            spaceSlug:
              type: string
          required:
            - spacePath
            - spaceSlug
          type: object
    PromotedSpace:
      $ref: '#/components/schemas/SpaceSummaryBase'
    SavedChartDAO:
      $ref: '#/components/schemas/Omit_SavedChart.inheritsFromOrgOrProject-or-access_'
    DashboardDAO:
      $ref: '#/components/schemas/Omit_Dashboard.inheritsFromOrgOrProject-or-access_'
    SpaceSummaryBase:
      allOf:
        - $ref: >-
            #/components/schemas/Pick_Space.organizationUuid-or-projectUuid-or-uuid-or-name-or-inheritParentPermissions-or-projectMemberAccessRole-or-pinnedListUuid-or-pinnedListOrder-or-slug-or-parentSpaceUuid-or-path_
        - properties:
            deletedBy:
              properties:
                lastName:
                  type: string
                firstName:
                  type: string
                userUuid:
                  type: string
              required:
                - lastName
                - firstName
                - userUuid
              type: object
            deletedAt:
              type: string
              format: date-time
            appCount:
              type: number
              format: double
            childSpaceCount:
              type: number
              format: double
            dashboardCount:
              type: number
              format: double
            chartCount:
              type: number
              format: double
          required:
            - appCount
            - childSpaceCount
            - dashboardCount
            - chartCount
          type: object
    Omit_SavedChart.inheritsFromOrgOrProject-or-access_:
      $ref: >-
        #/components/schemas/Pick_SavedChart.Exclude_keyofSavedChart.inheritsFromOrgOrProject-or-access__
      description: Construct a type with the properties of T except for those in type K.
    Omit_Dashboard.inheritsFromOrgOrProject-or-access_:
      $ref: >-
        #/components/schemas/Pick_Dashboard.Exclude_keyofDashboard.inheritsFromOrgOrProject-or-access__
      description: Construct a type with the properties of T except for those in type K.
    Pick_Space.organizationUuid-or-projectUuid-or-uuid-or-name-or-inheritParentPermissions-or-projectMemberAccessRole-or-pinnedListUuid-or-pinnedListOrder-or-slug-or-parentSpaceUuid-or-path_:
      properties:
        name:
          type: string
        projectUuid:
          type: string
        organizationUuid:
          type: string
        uuid:
          type: string
        inheritParentPermissions:
          type: boolean
        projectMemberAccessRole:
          allOf:
            - $ref: '#/components/schemas/SpaceMemberRole'
          nullable: true
        pinnedListUuid:
          type: string
          nullable: true
        pinnedListOrder:
          type: number
          format: double
          nullable: true
        slug:
          type: string
        parentSpaceUuid:
          type: string
          nullable: true
        path:
          type: string
      required:
        - name
        - projectUuid
        - organizationUuid
        - uuid
        - inheritParentPermissions
        - projectMemberAccessRole
        - pinnedListUuid
        - pinnedListOrder
        - slug
        - parentSpaceUuid
        - path
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_SavedChart.Exclude_keyofSavedChart.inheritsFromOrgOrProject-or-access__:
      properties:
        description:
          type: string
          description: Optional description of what this chart displays
        name:
          type: string
          description: Display name of the chart
        projectUuid:
          type: string
        organizationUuid:
          type: string
        uuid:
          type: string
        parameters:
          $ref: '#/components/schemas/ParametersValuesMap'
          description: Parameter values for the chart query
        pinnedListUuid:
          type: string
          nullable: true
        pinnedListOrder:
          type: number
          format: double
          nullable: true
        slug:
          type: string
          description: Unique identifier slug for this chart
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the chart was last updated
        chartConfig:
          $ref: '#/components/schemas/ChartConfig'
          description: Visualization configuration for the chart
        spaceUuid:
          type: string
        dashboardUuid:
          type: string
          nullable: true
        verification:
          allOf:
            - $ref: '#/components/schemas/ContentVerificationInfo'
          nullable: true
        updatedByUser:
          $ref: '#/components/schemas/UpdatedByUser'
        spaceName:
          type: string
        colorPaletteUuid:
          type: string
          nullable: true
          description: |-
            Chart-level palette override pointer. `null` means inherit from the
            containing dashboard / space / project / org. Writable via
            `UpdateSavedChart`.
        deletedAt:
          type: string
          format: date-time
        deletedBy:
          properties:
            lastName:
              type: string
            firstName:
              type: string
            userUuid:
              type: string
          required:
            - lastName
            - firstName
            - userUuid
          type: object
          nullable: true
        tableName:
          type: string
          description: The explore/table name this chart queries from
        metricQuery:
          $ref: '#/components/schemas/MetricQuery'
          description: The query configuration defining what data to fetch
        pivotConfig:
          properties:
            columns:
              items:
                type: string
              type: array
          required:
            - columns
          type: object
          description: Pivot table configuration
        tableConfig:
          properties:
            columnOrder:
              items:
                type: string
              type: array
          required:
            - columnOrder
          type: object
          description: Table view configuration
        dashboardName:
          type: string
          nullable: true
        colorPalette:
          items:
            type: string
          type: array
          deprecated: true
        resolvedColorPalette:
          $ref: '#/components/schemas/ResolvedProjectColorPalette'
          description: |-
            Fully resolved palette for this chart, computed from the
            org → project → space → dashboard → chart hierarchy. Read-only — set
            the chart's own palette via `colorPaletteUuid`.
      required:
        - name
        - projectUuid
        - organizationUuid
        - uuid
        - pinnedListUuid
        - pinnedListOrder
        - slug
        - updatedAt
        - chartConfig
        - spaceUuid
        - dashboardUuid
        - verification
        - spaceName
        - colorPaletteUuid
        - tableName
        - metricQuery
        - tableConfig
        - dashboardName
        - colorPalette
        - resolvedColorPalette
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_Dashboard.Exclude_keyofDashboard.inheritsFromOrgOrProject-or-access__:
      properties:
        description:
          type: string
        name:
          type: string
        projectUuid:
          type: string
        organizationUuid:
          type: string
        uuid:
          type: string
        parameters:
          $ref: '#/components/schemas/DashboardParameters'
        pinnedListUuid:
          type: string
          nullable: true
        pinnedListOrder:
          type: number
          format: double
          nullable: true
        slug:
          type: string
        updatedAt:
          type: string
          format: date-time
        versionUuid:
          type: string
        spaceUuid:
          type: string
        dashboardVersionId:
          type: number
          format: double
        verification:
          allOf:
            - $ref: '#/components/schemas/ContentVerificationInfo'
          nullable: true
        tiles:
          items:
            $ref: '#/components/schemas/DashboardTile'
          type: array
        filters:
          $ref: '#/components/schemas/DashboardFilters'
        updatedByUser:
          $ref: '#/components/schemas/UpdatedByUser'
        spaceName:
          type: string
        views:
          type: number
          format: double
        firstViewedAt:
          anyOf:
            - type: string
            - type: string
              format: date-time
          nullable: true
        tabs:
          items:
            $ref: '#/components/schemas/DashboardTab'
          type: array
        config:
          $ref: '#/components/schemas/DashboardConfig'
        colorPaletteUuid:
          type: string
          nullable: true
        deletedAt:
          type: string
          format: date-time
        deletedBy:
          properties:
            lastName:
              type: string
            firstName:
              type: string
            userUuid:
              type: string
          required:
            - lastName
            - firstName
            - userUuid
          type: object
          nullable: true
      required:
        - name
        - projectUuid
        - organizationUuid
        - uuid
        - pinnedListUuid
        - pinnedListOrder
        - slug
        - updatedAt
        - versionUuid
        - spaceUuid
        - dashboardVersionId
        - verification
        - tiles
        - filters
        - spaceName
        - views
        - firstViewedAt
        - tabs
        - colorPaletteUuid
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    SpaceMemberRole:
      enum:
        - viewer
        - editor
        - admin
      type: string
    ParametersValuesMap:
      $ref: '#/components/schemas/Record_string.ParameterValue_'
    ChartConfig:
      anyOf:
        - $ref: '#/components/schemas/BigNumberConfig'
        - $ref: '#/components/schemas/CartesianChartConfig'
        - $ref: '#/components/schemas/CustomVisConfig'
        - $ref: '#/components/schemas/PieChartConfig'
        - $ref: '#/components/schemas/FunnelChartConfig'
        - $ref: '#/components/schemas/TableChartConfig'
        - $ref: '#/components/schemas/TreemapChartConfig'
        - $ref: '#/components/schemas/GaugeChartConfig'
        - $ref: '#/components/schemas/MapChartConfig'
        - $ref: '#/components/schemas/SankeyChartConfig'
    ContentVerificationInfo:
      properties:
        verifiedAt:
          type: string
          format: date-time
        verifiedBy:
          properties:
            lastName:
              type: string
            firstName:
              type: string
            userUuid:
              type: string
          required:
            - lastName
            - firstName
            - userUuid
          type: object
      required:
        - verifiedAt
        - verifiedBy
      type: object
    UpdatedByUser:
      properties:
        userUuid:
          type: string
        firstName:
          type: string
        lastName:
          type: string
      required:
        - userUuid
        - firstName
        - lastName
      type: object
      additionalProperties: true
    MetricQuery:
      properties:
        metadata:
          properties:
            hasADateDimension:
              $ref: >-
                #/components/schemas/Pick_CompiledDimension.label-or-name-or-table_
          required:
            - hasADateDimension
          type: object
        pivotDimensions:
          items:
            $ref: '#/components/schemas/FieldId'
          type: array
          description: >-
            Dimension field IDs used as pivot columns (from chart's
            pivotConfig.columns).

            Used by row_total() to determine non-pivot dimensions for GROUP BY.
        timezone:
          type: string
          description: Timezone for date/time values (e.g., 'America/Los_Angeles', 'UTC')
        dimensionOverrides:
          $ref: '#/components/schemas/DimensionOverrides'
          description: Override formatting options for existing dimensions
        metricOverrides:
          $ref: '#/components/schemas/MetricOverrides'
          description: Override formatting options for existing metrics
        customDimensions:
          items:
            $ref: '#/components/schemas/CustomDimension'
          type: array
          description: Custom dimensions defined inline
        additionalMetrics:
          items:
            $ref: '#/components/schemas/AdditionalMetric'
          type: array
          description: Custom metrics defined inline (ad-hoc metrics not in the dbt model)
        tableCalculations:
          items:
            $ref: '#/components/schemas/TableCalculation'
          type: array
          description: Custom calculations to perform on query results
        limit:
          type: number
          format: double
          description: Maximum number of rows to return
        sorts:
          items:
            $ref: '#/components/schemas/SortField'
          type: array
          description: Sort configuration for query results
        filters:
          $ref: '#/components/schemas/Filters'
          description: Filter rules to apply to the query
        metrics:
          items:
            $ref: '#/components/schemas/FieldId'
          type: array
          description: List of metric field IDs to include
        dimensions:
          items:
            $ref: '#/components/schemas/FieldId'
          type: array
          description: List of dimension field IDs to include
        exploreName:
          type: string
          description: The name of the explore to query
      required:
        - tableCalculations
        - limit
        - sorts
        - filters
        - metrics
        - dimensions
        - exploreName
      type: object
    ResolvedProjectColorPalette:
      properties:
        source:
          $ref: '#/components/schemas/ColorPaletteSource'
        paletteName:
          type: string
          nullable: true
        paletteUuid:
          type: string
          nullable: true
        darkColors:
          items:
            type: string
          type: array
          nullable: true
        colors:
          items:
            type: string
          type: array
      required:
        - source
        - paletteName
        - paletteUuid
        - darkColors
        - colors
      type: object
    DashboardParameters:
      $ref: '#/components/schemas/Record_string.DashboardParameterValue_'
    DashboardTile:
      anyOf:
        - $ref: '#/components/schemas/DashboardChartTile'
        - $ref: '#/components/schemas/DashboardMarkdownTile'
        - $ref: '#/components/schemas/DashboardLoomTile'
        - $ref: '#/components/schemas/DashboardSqlChartTile'
        - $ref: '#/components/schemas/DashboardHeadingTile'
        - $ref: '#/components/schemas/DashboardDataAppTile'
    DashboardFilters:
      properties:
        tableCalculations:
          items:
            $ref: '#/components/schemas/DashboardFilterRule'
          type: array
        metrics:
          items:
            $ref: '#/components/schemas/DashboardFilterRule'
          type: array
        dimensions:
          items:
            $ref: '#/components/schemas/DashboardFilterRule'
          type: array
      required:
        - tableCalculations
        - metrics
        - dimensions
      type: object
    DashboardTab:
      properties:
        hidden:
          type: boolean
        order:
          type: number
          format: double
          minimum: 0
        name:
          type: string
          minLength: 1
        uuid:
          type: string
      required:
        - order
        - name
        - uuid
      type: object
    DashboardConfig:
      properties:
        dateZoomConfig:
          $ref: '#/components/schemas/DateZoomConfig'
        defaultDateZoomGranularity:
          anyOf:
            - $ref: '#/components/schemas/DateGranularity'
            - type: string
        dateZoomGranularities:
          items:
            anyOf:
              - $ref: '#/components/schemas/DateGranularity'
              - type: string
          type: array
        parameterOrder:
          items:
            type: string
          type: array
        pinnedParameters:
          items:
            type: string
          type: array
        isAddFilterDisabled:
          type: boolean
        isDateZoomDisabled:
          type: boolean
      required:
        - isDateZoomDisabled
      type: object
    Record_string.ParameterValue_:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/ParameterValue'
      type: object
      description: Construct a type with a set of properties K of type T
    BigNumberConfig:
      properties:
        config:
          $ref: '#/components/schemas/BigNumber'
          description: Chart-type-specific configuration
        type:
          $ref: '#/components/schemas/ChartType.BIG_NUMBER'
          description: Type of chart visualization
      required:
        - type
      type: object
    CartesianChartConfig:
      properties:
        config:
          $ref: '#/components/schemas/CartesianChart'
          description: Chart-type-specific configuration
        type:
          $ref: '#/components/schemas/ChartType.CARTESIAN'
          description: Type of chart visualization
      required:
        - type
      type: object
    CustomVisConfig:
      properties:
        config:
          $ref: '#/components/schemas/CustomVis'
          description: Chart-type-specific configuration
        type:
          $ref: '#/components/schemas/ChartType.CUSTOM'
          description: Type of chart visualization
      required:
        - type
      type: object
    PieChartConfig:
      properties:
        config:
          $ref: '#/components/schemas/PieChart'
          description: Chart-type-specific configuration
        type:
          $ref: '#/components/schemas/ChartType.PIE'
          description: Type of chart visualization
      required:
        - type
      type: object
    FunnelChartConfig:
      properties:
        config:
          $ref: '#/components/schemas/FunnelChart'
          description: Chart-type-specific configuration
        type:
          $ref: '#/components/schemas/ChartType.FUNNEL'
          description: Type of chart visualization
      required:
        - type
      type: object
    TableChartConfig:
      properties:
        config:
          $ref: '#/components/schemas/TableChart'
          description: Chart-type-specific configuration
        type:
          $ref: '#/components/schemas/ChartType.TABLE'
          description: Type of chart visualization
      required:
        - type
      type: object
    TreemapChartConfig:
      properties:
        config:
          $ref: '#/components/schemas/TreemapChart'
          description: Chart-type-specific configuration
        type:
          $ref: '#/components/schemas/ChartType.TREEMAP'
          description: Type of chart visualization
      required:
        - type
      type: object
    GaugeChartConfig:
      properties:
        config:
          $ref: '#/components/schemas/GaugeChart'
          description: Chart-type-specific configuration
        type:
          $ref: '#/components/schemas/ChartType.GAUGE'
          description: Type of chart visualization
      required:
        - type
      type: object
    MapChartConfig:
      properties:
        config:
          $ref: '#/components/schemas/MapChart'
          description: Chart-type-specific configuration
        type:
          $ref: '#/components/schemas/ChartType.MAP'
          description: Type of chart visualization
      required:
        - type
      type: object
    SankeyChartConfig:
      properties:
        config:
          $ref: '#/components/schemas/SankeyChart'
          description: Chart-type-specific configuration
        type:
          $ref: '#/components/schemas/ChartType.SANKEY'
          description: Type of chart visualization
      required:
        - type
      type: object
    Pick_CompiledDimension.label-or-name-or-table_:
      properties:
        name:
          type: string
        label:
          type: string
        table:
          type: string
      required:
        - name
        - label
        - table
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    FieldId:
      type: string
    DimensionOverrides:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/Pick_Dimension.formatOptions_'
      type: object
    MetricOverrides:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/Pick_Metric.formatOptions_'
      type: object
    CustomDimension:
      anyOf:
        - $ref: '#/components/schemas/CustomBinDimension'
        - $ref: '#/components/schemas/CustomSqlDimension'
    AdditionalMetric:
      properties:
        label:
          type: string
          description: Display label for the metric
        type:
          $ref: '#/components/schemas/MetricType'
          description: Aggregation type
        description:
          type: string
          description: Description of what the metric measures
        sql:
          type: string
          description: SQL expression (e.g., ${TABLE}.column_name)
        hidden:
          type: boolean
          description: Whether the metric is hidden from users
        round:
          type: number
          format: double
          description: Number of decimal places
        compact:
          $ref: '#/components/schemas/CompactOrAlias'
          description: Compact format for large numbers
        format:
          anyOf:
            - $ref: '#/components/schemas/Format'
            - type: string
          description: Format string (legacy format specification)
        separator:
          $ref: '#/components/schemas/NumberSeparator'
          description: Number separator style for grouping/decimal characters
        table:
          type: string
          description: Table name the metric belongs to
        name:
          type: string
          description: Internal name of the metric
        index:
          type: number
          format: double
          description: Display order index
        filters:
          items:
            $ref: '#/components/schemas/MetricFilterRule'
          type: array
          description: Filters to apply to this metric
        baseDimensionName:
          type: string
          description: Name of the base dimension/column this metric aggregates
        uuid:
          type: string
          nullable: true
          description: Unique identifier for the metric
        percentile:
          type: number
          format: double
          description: Percentile value for percentile metrics
        distinctKeys:
          items:
            type: string
          type: array
        formatOptions:
          $ref: '#/components/schemas/CustomFormat'
          description: Formatting configuration
        generationType:
          type: string
          enum:
            - periodOverPeriod
          nullable: false
          description: |-
            Optional marker for metrics generated by the system.
            Currently used for Period-over-Period (PoP) previous-period metrics.
        baseMetricId:
          $ref: '#/components/schemas/FieldId'
          description: >-
            For PoP-generated metrics, the base metric id that this metric is
            derived from.
        timeDimensionId:
          $ref: '#/components/schemas/FieldId'
          description: >-
            For PoP-generated metrics, the time dimension id used for the
            comparison.
        granularity:
          $ref: '#/components/schemas/TimeFrames'
          description: For PoP-generated metrics, the granularity used for the comparison.
        periodOffset:
          type: number
          format: double
          description: >-
            For PoP-generated metrics, the number of periods to offset by (>=
            1).
      required:
        - type
        - sql
        - table
        - name
      type: object
      additionalProperties: true
    TableCalculation:
      anyOf:
        - $ref: '#/components/schemas/SqlTableCalculation'
        - $ref: '#/components/schemas/TemplateTableCalculation'
        - $ref: '#/components/schemas/FormulaTableCalculation'
    SortField:
      properties:
        pivotValues:
          items:
            $ref: '#/components/schemas/PivotSortAnchor'
          type: array
          description: >-
            Pins the row-sort anchor to a specific pivot column. Ignored for
            non-pivoted results.
        nullsFirst:
          type: boolean
          description: Sort null values first
        descending:
          type: boolean
          description: Sort in descending order
        fieldId:
          type: string
          description: Field ID to sort by
      required:
        - descending
        - fieldId
      type: object
    Filters:
      properties:
        tableCalculations:
          $ref: '#/components/schemas/FilterGroup'
          description: Table calculation filter group
        metrics:
          $ref: '#/components/schemas/FilterGroup'
          description: Metric filter group
        dimensions:
          $ref: '#/components/schemas/FilterGroup'
          description: Dimension filter group
      type: object
    ColorPaletteSource:
      anyOf:
        - properties:
            type:
              type: string
              enum:
                - config
              nullable: false
          required:
            - type
          type: object
        - properties:
            type:
              type: string
              enum:
                - default
              nullable: false
          required:
            - type
          type: object
        - properties:
            name:
              type: string
            uuid:
              type: string
            type:
              type: string
              enum:
                - organization
              nullable: false
          required:
            - name
            - uuid
            - type
          type: object
        - properties:
            name:
              type: string
            uuid:
              type: string
            type:
              type: string
              enum:
                - project
              nullable: false
          required:
            - name
            - uuid
            - type
          type: object
        - properties:
            name:
              type: string
            uuid:
              type: string
            type:
              type: string
              enum:
                - space
              nullable: false
          required:
            - name
            - uuid
            - type
          type: object
        - properties:
            name:
              type: string
            uuid:
              type: string
            type:
              type: string
              enum:
                - dashboard
              nullable: false
          required:
            - name
            - uuid
            - type
          type: object
        - properties:
            name:
              type: string
            uuid:
              type: string
            type:
              type: string
              enum:
                - chart
              nullable: false
          required:
            - name
            - uuid
            - type
          type: object
      description: >-
        Where a resolved colour palette came from. The `config` and `default`
        cases

        carry no entity reference; the rest expose the UUID and human-readable
        name

        of the entity (organization, project, space, dashboard or chart) that
        owns

        the winning palette in the resolution chain.
    Record_string.DashboardParameterValue_:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/DashboardParameterValue'
      type: object
      description: Construct a type with a set of properties K of type T
    DashboardChartTile:
      allOf:
        - $ref: '#/components/schemas/DashboardTileBase'
        - $ref: '#/components/schemas/DashboardChartTileProperties'
    DashboardMarkdownTile:
      allOf:
        - $ref: '#/components/schemas/DashboardTileBase'
        - $ref: '#/components/schemas/DashboardMarkdownTileProperties'
    DashboardLoomTile:
      allOf:
        - $ref: '#/components/schemas/DashboardTileBase'
        - $ref: '#/components/schemas/DashboardLoomTileProperties'
    DashboardSqlChartTile:
      allOf:
        - $ref: '#/components/schemas/DashboardTileBase'
        - $ref: '#/components/schemas/DashboardSqlChartTileProperties'
    DashboardHeadingTile:
      allOf:
        - $ref: '#/components/schemas/DashboardTileBase'
        - $ref: '#/components/schemas/DashboardHeadingTileProperties'
    DashboardDataAppTile:
      allOf:
        - $ref: '#/components/schemas/DashboardTileBase'
        - $ref: '#/components/schemas/DashboardDataAppTileProperties'
    DashboardFilterRule:
      allOf:
        - $ref: >-
            #/components/schemas/FilterRule_FilterOperator.DashboardFieldTarget.AnyType.AnyType_
        - properties:
            lockedTabUuids:
              items:
                type: string
              type: array
              description: >-
                Tab UUIDs where this filter is locked. When the active tab is in
                this

                list, viewers see the filter but cannot change it, and URL /
                embed

                filter overrides targeting the same field are ignored on that
                tab.

                Empty or omitted means the filter is not locked anywhere.
            singleValue:
              type: boolean
            label:
              type: string
            tileTargets:
              $ref: '#/components/schemas/Record_string.DashboardTileTarget_'
          type: object
    DateZoomConfig:
      properties:
        tileTargets:
          $ref: '#/components/schemas/Record_string.DateZoomTileTarget_'
        controls:
          items:
            $ref: '#/components/schemas/DateZoomControl'
          type: array
      required:
        - tileTargets
        - controls
      type: object
    DateGranularity:
      enum:
        - Second
        - Minute
        - Hour
        - Day
        - Week
        - Month
        - Quarter
        - Year
      type: string
    ParameterValue:
      anyOf:
        - type: string
        - type: number
          format: double
        - items:
            type: string
          type: array
        - items:
            type: number
            format: double
          type: array
    BigNumber:
      properties:
        comparisonField:
          type: string
        conditionalFormattings:
          items:
            $ref: '#/components/schemas/ConditionalFormattingConfig'
          type: array
          description: Conditional formatting rules
        comparisonLabel:
          type: string
          description: Custom label for the comparison value
        flipColors:
          type: boolean
          description: Flip positive/negative colors (red for increase, green for decrease)
        comparisonFormat:
          $ref: '#/components/schemas/ComparisonFormatTypes'
          description: Format for comparison value
        showComparison:
          type: boolean
          description: Show comparison with previous value
        showTableNamesInLabel:
          type: boolean
          description: Include table name in the label
        showBigNumberLabel:
          type: boolean
          description: Show the label above the number
        selectedField:
          type: string
          description: Field ID to display as the big number
        style:
          $ref: '#/components/schemas/CompactOrAlias'
          description: Number formatting style (compact notation)
        label:
          type: string
          description: Custom label for the big number
      type: object
    ChartType.BIG_NUMBER:
      enum:
        - big_number
      type: string
    CartesianChart:
      properties:
        columnLimit:
          type: number
          format: double
          description: Maximum number of pivot columns to display
        rowLimit:
          $ref: '#/components/schemas/RowLimit'
          description: Limit displayed rows to first/last N
        metadata:
          $ref: '#/components/schemas/Record_string.SeriesMetadata_'
          description: Metadata for series (colors, etc.)
        conditionalFormattings:
          items:
            $ref: '#/components/schemas/ConditionalFormattingConfig'
          type: array
          description: Conditional formatting rules
        eChartsConfig:
          $ref: '#/components/schemas/EChartsConfig'
          description: ECharts-specific configuration
        layout:
          $ref: '#/components/schemas/CartesianChartLayout'
          description: Layout configuration for the chart axes and orientation
      required:
        - eChartsConfig
        - layout
      type: object
    ChartType.CARTESIAN:
      enum:
        - cartesian
      type: string
    CustomVis:
      properties:
        spec:
          $ref: '#/components/schemas/Record_string.unknown_'
          description: Custom visualization specification (Vega-Lite or other)
      type: object
    ChartType.CUSTOM:
      enum:
        - custom
      type: string
    PieChart:
      properties:
        metadata:
          $ref: '#/components/schemas/Record_string.SeriesMetadata_'
          description: Metadata for series (colors, etc.)
        legendMaxItemLength:
          type: number
          format: double
          description: Maximum character length for legend items
        legendPosition:
          $ref: '#/components/schemas/PieChartLegendPosition'
          description: Legend position/orientation
        showLegend:
          type: boolean
          description: Show the chart legend
        groupSortOverrides:
          items:
            type: string
          type: array
          description: Custom sort order for groups/slices
        groupValueOptionOverrides:
          $ref: '#/components/schemas/Record_string.Partial_PieChartValueOptions__'
          description: Per-slice value display options
        groupColorOverrides:
          $ref: '#/components/schemas/Record_string.string_'
          description: Custom colors for each group/slice
        groupLabelOverrides:
          $ref: '#/components/schemas/Record_string.string_'
          description: Custom labels for each group/slice
        showPercentage:
          type: boolean
          description: Show percentage on slices
        showValue:
          type: boolean
          description: Show the actual value on slices
        valueLabel:
          $ref: '#/components/schemas/PieChartValueLabel'
          description: Position of value labels on slices
        isDonut:
          type: boolean
          description: Display as donut chart with hole in center
        metricId:
          type: string
          description: Field ID of the metric to display
        groupFieldIds:
          items:
            type: string
          type: array
          description: Field IDs used for grouping/slicing the pie
      type: object
    ChartType.PIE:
      enum:
        - pie
      type: string
    FunnelChart:
      properties:
        legendPosition:
          $ref: '#/components/schemas/FunnelChartLegendPosition'
          description: Legend orientation
        showLegend:
          type: boolean
          description: Show the chart legend
        labels:
          properties:
            showPercentage:
              type: boolean
              description: Show percentage
            showValue:
              type: boolean
              description: Show the actual value
            position:
              $ref: '#/components/schemas/FunnelChartLabelPosition'
              description: Position of labels
          type: object
          description: Label display configuration
        colorOverrides:
          $ref: '#/components/schemas/Record_string.string_'
          description: Custom colors for funnel stages
        labelOverrides:
          $ref: '#/components/schemas/Record_string.string_'
          description: Custom labels for funnel stages
        metadata:
          $ref: '#/components/schemas/Record_string.SeriesMetadata_'
          description: Metadata for series (colors, etc.)
        fieldId:
          type: string
          description: Field ID to display in funnel
        dataInput:
          $ref: '#/components/schemas/FunnelChartDataInput'
          description: How data is structured (row-based or column-based)
      type: object
    ChartType.FUNNEL:
      enum:
        - funnel
      type: string
    TableChart:
      properties:
        rowLimit:
          $ref: '#/components/schemas/RowLimit'
          description: Limit displayed rows to first/last N
        metricsAsRows:
          type: boolean
          description: Display metrics as rows instead of columns
        conditionalFormattings:
          items:
            $ref: '#/components/schemas/ConditionalFormattingConfig'
          type: array
          description: Conditional formatting rules
        columns:
          $ref: '#/components/schemas/Record_string.ColumnProperties_'
          description: Column-specific configuration
        showRowGrouping:
          type: boolean
          description: >-
            Visually deduplicate repeated row-index dimension values across
            consecutive

            rows without showing aggregate subtotal rows. When `showSubtotals`
            is true,

            grouping is implicitly active and this flag is ignored. Defaults to
            false.
        showSubtotalsExpanded:
          type: boolean
          description: >-
            Default subtotal rows to expanded (vs. collapsed). Only meaningful
            when showSubtotals is true.
        showSubtotals:
          type: boolean
          description: Show subtotal rows
        showResultsTotal:
          type: boolean
          description: Show total results count
        hideRowNumbers:
          type: boolean
          description: Hide row number column
        showTableNames:
          type: boolean
          description: Show table names in column headers
        showRowCalculation:
          type: boolean
          description: Show row totals/calculations
        showColumnCalculation:
          type: boolean
          description: Show column totals/calculations
      type: object
    ChartType.TABLE:
      enum:
        - table
      type: string
    TreemapChart:
      properties:
        endColorThreshold:
          type: number
          format: double
          description: Value threshold for end color
        startColorThreshold:
          type: number
          format: double
          description: Value threshold for start color
        useDynamicColors:
          type: boolean
          description: Use dynamic color scaling based on values
        endColor:
          type: string
          description: End color for color gradient (hex code)
        startColor:
          type: string
          description: Start color for color gradient (hex code)
        colorMetricId:
          type: string
          description: Field ID for node color value
        sizeMetricId:
          type: string
          description: Field ID for node size
        groupFieldIds:
          items:
            type: string
          type: array
          description: Field IDs for hierarchical grouping
        leafDepth:
          type: number
          format: double
          description: Depth of leaf nodes to display
        visibleMin:
          type: number
          format: double
          description: Minimum size for visible nodes
      type: object
    ChartType.TREEMAP:
      enum:
        - treemap
      type: string
    GaugeChart:
      properties:
        customPercentageLabel:
          type: string
          description: Custom label for the percentage display
        showPercentage:
          type: boolean
          description: Show value as percentage
        customLabel:
          type: string
          description: Custom label for the gauge value
        sections:
          items:
            $ref: '#/components/schemas/GaugeSection'
          type: array
          description: Color sections/ranges for the gauge
        showAxisLabels:
          type: boolean
          description: Show min/max labels on the gauge
        maxFieldId:
          type: string
          description: Field ID to use as the max value
        max:
          type: number
          format: double
          description: Maximum value for the gauge
        min:
          type: number
          format: double
          description: Minimum value for the gauge
        selectedField:
          type: string
          description: Field ID for the gauge value
      type: object
    ChartType.GAUGE:
      enum:
        - gauge
      type: string
    MapChart:
      properties:
        saveMapExtent:
          type: boolean
          description: Save the current map zoom/position
        fieldConfig:
          $ref: '#/components/schemas/Record_string.MapFieldConfig_'
          description: Field-specific configuration for tooltips
        noDataColor:
          type: string
          description: Color for regions with no data (hex code)
        backgroundColor:
          type: string
          description: Background color for the map (hex code)
        darkModeTileBackground:
          $ref: '#/components/schemas/MapTileBackground'
          description: >-
            Map tile background style for dark mode (uses dark default when
            undefined)
        tileBackground:
          $ref: '#/components/schemas/MapTileBackground'
          description: Map tile background style
        dataLayerOpacity:
          type: number
          format: double
          description: Data layer opacity (0.1 to 1)
        hexbinConfig:
          properties:
            emptyBinColor:
              type: string
              nullable: true
              description: |-
                Fill color for empty bins. Hex6 (#rrggbb) = solid fill, hex8
                (#rrggbbaa) = fill with alpha, null/undefined = outline only.
            showEmptyBins:
              type: boolean
              description: >-
                Render outlined empty cells across the visible map area, so the
                user

                can see "where there is no data" relative to the hex grid.
            aggregation:
              $ref: '#/components/schemas/MapHexbinAggregation'
              description: Aggregation applied when valueBasis = FIELD. Defaults to SUM.
            valueBasis:
              $ref: '#/components/schemas/MapHexbinValueBasis'
              description: >-
                What drives cell color: count of points (default) or an
                aggregation

                over a chosen value field (controlled via the chart's
                `valueFieldId`).
            fixedResolution:
              type: number
              format: double
              description: >-
                H3 resolution (0-15) used when sizingMode is FIXED. Ignored
                otherwise.
            sizingMode:
              $ref: '#/components/schemas/MapHexbinSizingMode'
              description: How bin size is determined. Defaults to DYNAMIC if unset.
            opacity:
              type: number
              format: double
              description: Opacity of hex polygons (0.1 to 1)
          type: object
          description: Configuration for H3 hexagonal binning visualization
        heatmapConfig:
          properties:
            opacity:
              type: number
              format: double
              description: Opacity of the heatmap layer
            blur:
              type: number
              format: double
              description: Blur amount for heat points
            radius:
              type: number
              format: double
              description: Radius of heat points
          type: object
          description: Configuration for heatmap visualization
        sizeFieldId:
          type: string
          description: Field ID for bubble size (scatter maps)
        maxBubbleSize:
          type: number
          format: double
          description: Maximum bubble size for scatter maps
        minBubbleSize:
          type: number
          format: double
          description: Minimum bubble size for scatter maps
        defaultCenterLon:
          type: number
          format: double
          description: Default center longitude
        defaultCenterLat:
          type: number
          format: double
          description: Default center latitude
        defaultZoom:
          type: number
          format: double
          description: Default zoom level
        colorOverrides:
          $ref: '#/components/schemas/Record_string.string_'
          description: Per-value color overrides for categorical color fields
        colorRange:
          items:
            type: string
          type: array
          description: Array of colors for the value gradient
        showLegend:
          type: boolean
          description: Show the map legend
        valueFieldId:
          type: string
          description: Field ID for the value to display
        geoJsonPropertyKey:
          type: string
          description: Property key in GeoJSON to match against data
        locationFieldId:
          type: string
          description: Field ID for location/region names (area maps)
        longitudeFieldId:
          type: string
          description: Field ID for longitude values
        latitudeFieldId:
          type: string
          description: Field ID for latitude values
        locationType:
          $ref: '#/components/schemas/MapChartType'
          description: How to display location data
        customGeoJsonUrl:
          type: string
          description: URL to custom GeoJSON file
        mapType:
          $ref: '#/components/schemas/MapChartLocation'
          description: Type of map to display
      type: object
    ChartType.MAP:
      enum:
        - map
      type: string
    SankeyChart:
      properties:
        nodeLayout:
          $ref: '#/components/schemas/SankeyNodeLayout'
          description: How nodes are laid out across steps
        orient:
          type: string
          enum:
            - horizontal
            - vertical
          description: Orientation of the diagram
        nodeAlign:
          type: string
          enum:
            - left
            - right
            - justify
          description: Node alignment
        metricFieldId:
          type: string
          description: Field ID for the link value metric
        targetFieldId:
          type: string
          description: Field ID for the target node dimension
        sourceFieldId:
          type: string
          description: Field ID for the source node dimension
      type: object
    ChartType.SANKEY:
      enum:
        - sankey
      type: string
    Pick_Dimension.formatOptions_:
      properties:
        formatOptions:
          $ref: '#/components/schemas/CustomFormat'
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_Metric.formatOptions_:
      properties:
        formatOptions:
          $ref: '#/components/schemas/CustomFormat'
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    CustomBinDimension:
      anyOf:
        - $ref: '#/components/schemas/FixedNumberBinDimension'
        - $ref: '#/components/schemas/FixedWidthBinDimension'
        - $ref: '#/components/schemas/CustomRangeBinDimension'
        - $ref: '#/components/schemas/CustomGroupBinDimension'
    CustomSqlDimension:
      properties:
        id:
          type: string
          description: Unique identifier for the custom dimension
        name:
          type: string
          description: Display name for the custom dimension
        table:
          type: string
          description: Table this custom dimension belongs to
        type:
          $ref: '#/components/schemas/CustomDimensionType.SQL'
          description: Type of custom dimension (bin or sql)
        sql:
          type: string
          description: SQL expression for the custom dimension
        dimensionType:
          $ref: '#/components/schemas/DimensionType'
          description: Data type of the dimension result
      required:
        - id
        - name
        - table
        - type
        - sql
        - dimensionType
      type: object
      additionalProperties: true
    MetricType:
      enum:
        - percentile
        - average
        - count
        - count_distinct
        - sum
        - sum_distinct
        - average_distinct
        - min
        - max
        - percent_of_previous
        - percent_of_total
        - running_total
        - number
        - median
        - string
        - date
        - timestamp
        - boolean
      type: string
    CompactOrAlias:
      anyOf:
        - $ref: '#/components/schemas/Compact'
        - type: string
          enum:
            - K
            - thousand
            - M
            - million
            - B
            - billion
            - T
            - trillion
            - KB
            - kilobyte
            - MB
            - megabyte
            - GB
            - gigabyte
            - TB
            - terabyte
            - PB
            - petabyte
            - KiB
            - kibibyte
            - MiB
            - mebibyte
            - GiB
            - gibibyte
            - TiB
            - tebibyte
            - PiB
            - pebibyte
    Format:
      enum:
        - km
        - mi
        - usd
        - gbp
        - eur
        - jpy
        - dkk
        - id
        - percent
      type: string
    NumberSeparator:
      enum:
        - default
        - commaPeriod
        - spacePeriod
        - periodComma
        - noSeparatorPeriod
        - apostrophePeriod
      type: string
    MetricFilterRule:
      description: Filter rule for metrics, targeting fields by reference
      properties:
        values:
          items:
            $ref: '#/components/schemas/AnyType'
          type: array
          description: Values to filter by
        operator:
          $ref: '#/components/schemas/FilterOperator'
          description: Filter operator
        id:
          type: string
          description: Unique identifier for the filter
        target:
          properties:
            fieldRef:
              type: string
              description: Field reference to filter on (e.g., 'table_name.field_name')
          required:
            - fieldRef
          type: object
          description: Target field for the filter
        settings:
          $ref: '#/components/schemas/AnyType'
          description: Additional settings for date/time filters
        disabled:
          type: boolean
          description: Whether this filter is disabled
        required:
          type: boolean
          description: Whether this filter is required
        caseSensitive:
          type: boolean
          description: >-
            Overrides the field/explore case-sensitivity for this rule only.

            Used by internal features like autocomplete search that must always

            match case-insensitively regardless of the field's configured
            setting.
      required:
        - operator
        - id
        - target
      type: object
      additionalProperties: true
    CustomFormat:
      properties:
        type:
          $ref: '#/components/schemas/CustomFormatType'
          description: Format type
        round:
          type: number
          format: double
          description: Number of decimal places
        separator:
          $ref: '#/components/schemas/NumberSeparator'
          description: Number separator style
        currency:
          type: string
          description: Currency code (e.g., USD, GBP, EUR)
        compact:
          $ref: '#/components/schemas/CompactOrAlias'
          description: Compact format for large numbers (K, M, B, T) or byte units
        prefix:
          type: string
          description: Prefix to prepend to formatted values
        suffix:
          type: string
          description: Suffix to append to formatted values
        timeInterval:
          $ref: '#/components/schemas/TimeFrames'
          description: Time interval for date formatting
        custom:
          type: string
          description: Custom format string
      required:
        - type
      type: object
      additionalProperties: true
    TimeFrames:
      enum:
        - RAW
        - YEAR
        - QUARTER
        - MONTH
        - WEEK
        - DAY
        - HOUR
        - MINUTE
        - SECOND
        - MILLISECOND
        - DAY_OF_WEEK_INDEX
        - DAY_OF_MONTH_NUM
        - DAY_OF_YEAR_NUM
        - WEEK_NUM
        - MONTH_NUM
        - QUARTER_NUM
        - YEAR_NUM
        - DAY_OF_WEEK_NAME
        - MONTH_NAME
        - QUARTER_NAME
        - HOUR_OF_DAY_NUM
        - MINUTE_OF_HOUR_NUM
      type: string
    SqlTableCalculation:
      allOf:
        - $ref: '#/components/schemas/TableCalculationBase'
        - properties:
            sql:
              type: string
              description: >-
                SQL expression for the calculation (can reference fields with
                ${table.field})
          required:
            - sql
          type: object
    TemplateTableCalculation:
      allOf:
        - $ref: '#/components/schemas/TableCalculationBase'
        - properties:
            template:
              $ref: '#/components/schemas/TableCalculationTemplate'
              description: Template-based calculation (alternative to sql)
          required:
            - template
          type: object
    FormulaTableCalculation:
      allOf:
        - $ref: '#/components/schemas/TableCalculationBase'
        - properties:
            formula:
              type: string
              description: Spreadsheet-like formula compiled to SQL at query time
          required:
            - formula
          type: object
    PivotSortAnchor:
      properties:
        value:
          anyOf:
            - type: string
            - type: number
              format: double
            - type: boolean
          nullable: true
        reference:
          type: string
      required:
        - value
        - reference
      type: object
      description: |-
        Coordinates of a single pivot column, used to anchor a row sort to that
        specific column when results are pivoted.
    FilterGroup:
      anyOf:
        - $ref: '#/components/schemas/OrFilterGroup'
        - $ref: '#/components/schemas/AndFilterGroup'
    DashboardParameterValue:
      properties:
        value:
          $ref: '#/components/schemas/ParameterValue'
        parameterName:
          type: string
      required:
        - value
        - parameterName
      type: object
    DashboardTileBase:
      $ref: '#/components/schemas/Required_CreateDashboardTileBase_'
    DashboardChartTileProperties:
      properties:
        properties:
          properties:
            chartSlug:
              type: string
              nullable: true
            lastVersionChartKind:
              allOf:
                - $ref: '#/components/schemas/ChartKind'
              nullable: true
            chartName:
              type: string
              nullable: true
            belongsToDashboard:
              type: boolean
            savedChartUuid:
              type: string
              nullable: true
            hideTitle:
              type: boolean
            title:
              type: string
          required:
            - savedChartUuid
          type: object
        type:
          $ref: '#/components/schemas/DashboardTileTypes.SAVED_CHART'
      required:
        - properties
        - type
      type: object
    DashboardMarkdownTileProperties:
      properties:
        properties:
          properties:
            hideFrame:
              type: boolean
            content:
              type: string
            title:
              type: string
          required:
            - content
            - title
          type: object
        type:
          $ref: '#/components/schemas/DashboardTileTypes.MARKDOWN'
      required:
        - properties
        - type
      type: object
    DashboardLoomTileProperties:
      properties:
        properties:
          properties:
            url:
              type: string
            hideTitle:
              type: boolean
            title:
              type: string
          required:
            - url
            - title
          type: object
        type:
          $ref: '#/components/schemas/DashboardTileTypes.LOOM'
      required:
        - properties
        - type
      type: object
    DashboardSqlChartTileProperties:
      properties:
        properties:
          properties:
            chartSlug:
              type: string
              nullable: true
            hideTitle:
              type: boolean
            chartName:
              type: string
            savedSqlUuid:
              type: string
              nullable: true
            title:
              type: string
          required:
            - chartName
            - savedSqlUuid
          type: object
        type:
          $ref: '#/components/schemas/DashboardTileTypes.SQL_CHART'
      required:
        - properties
        - type
      type: object
    DashboardHeadingTileProperties:
      properties:
        properties:
          properties:
            showDivider:
              type: boolean
            text:
              type: string
            title: {}
          required:
            - text
          type: object
        type:
          $ref: '#/components/schemas/DashboardTileTypes.HEADING'
      required:
        - properties
        - type
      type: object
    DashboardDataAppTileProperties:
      properties:
        properties:
          properties:
            appDeletedAt:
              type: string
              nullable: true
            appUuid:
              type: string
            hideTitle:
              type: boolean
            title:
              type: string
          required:
            - appUuid
            - title
          type: object
        type:
          $ref: '#/components/schemas/DashboardTileTypes.DATA_APP'
      required:
        - properties
        - type
      type: object
    FilterRule_FilterOperator.DashboardFieldTarget.AnyType.AnyType_:
      properties:
        values:
          items:
            $ref: '#/components/schemas/AnyType'
          type: array
          description: Values to filter by
        operator:
          $ref: '#/components/schemas/FilterOperator'
          description: Filter operator
        id:
          type: string
          description: Unique identifier for the filter
        target:
          $ref: '#/components/schemas/DashboardFieldTarget'
          description: Target field for the filter
        settings:
          $ref: '#/components/schemas/AnyType'
          description: Additional settings for date/time filters
        disabled:
          type: boolean
          description: Whether this filter is disabled
        required:
          type: boolean
          description: Whether this filter is required
        caseSensitive:
          type: boolean
          description: >-
            Overrides the field/explore case-sensitivity for this rule only.

            Used by internal features like autocomplete search that must always

            match case-insensitively regardless of the field's configured
            setting.
      required:
        - operator
        - id
        - target
      type: object
      additionalProperties: true
    Record_string.DashboardTileTarget_:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/DashboardTileTarget'
      type: object
      description: Construct a type with a set of properties K of type T
    Record_string.DateZoomTileTarget_:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/DateZoomTileTarget'
      type: object
      description: Construct a type with a set of properties K of type T
    DateZoomControl:
      properties:
        hidden:
          type: boolean
        granularity:
          anyOf:
            - $ref: '#/components/schemas/DateGranularity'
            - type: string
        name:
          type: string
        uuid:
          type: string
      required:
        - granularity
        - name
        - uuid
      type: object
    ConditionalFormattingConfig:
      anyOf:
        - $ref: '#/components/schemas/ConditionalFormattingConfigWithSingleColor'
        - $ref: '#/components/schemas/ConditionalFormattingConfigWithColorRange'
    ComparisonFormatTypes:
      enum:
        - raw
        - percentage
      type: string
    RowLimit:
      properties:
        count:
          type: number
          format: double
          description: Number of rows to show or hide
        direction:
          type: string
          enum:
            - first
            - last
          description: Whether to target the first or last N rows
        mode:
          type: string
          enum:
            - show
            - hide
          description: Whether to show or hide the selected rows
      required:
        - count
        - direction
        - mode
      type: object
    Record_string.SeriesMetadata_:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/SeriesMetadata'
      type: object
      description: Construct a type with a set of properties K of type T
    EChartsConfig:
      $ref: '#/components/schemas/Partial_CompleteEChartsConfig_'
    CartesianChartLayout:
      $ref: '#/components/schemas/Partial_CompleteCartesianChartLayout_'
    Record_string.unknown_:
      properties: {}
      additionalProperties: {}
      type: object
      description: Construct a type with a set of properties K of type T
    PieChartLegendPosition:
      type: string
      enum:
        - horizontal
        - vertical
      nullable: false
    Record_string.Partial_PieChartValueOptions__:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/Partial_PieChartValueOptions_'
      type: object
      description: Construct a type with a set of properties K of type T
    PieChartValueLabel:
      type: string
      enum:
        - hidden
        - inside
        - outside
      nullable: false
    FunnelChartLegendPosition:
      enum:
        - horizontal
        - vertical
      type: string
    FunnelChartLabelPosition:
      enum:
        - inside
        - left
        - right
        - hidden
      type: string
    FunnelChartDataInput:
      enum:
        - row
        - column
      type: string
    Record_string.ColumnProperties_:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/ColumnProperties'
      type: object
      description: Construct a type with a set of properties K of type T
    GaugeSection:
      properties:
        color:
          type: string
          description: Color for this section (hex code)
        maxFieldId:
          type: string
          description: Field ID to use as max value
        minFieldId:
          type: string
          description: Field ID to use as min value
        max:
          type: number
          format: double
          description: End value for this section
        min:
          type: number
          format: double
          description: Start value for this section
      required:
        - color
        - max
        - min
      type: object
    Record_string.MapFieldConfig_:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/MapFieldConfig'
      type: object
      description: Construct a type with a set of properties K of type T
    MapTileBackground:
      enum:
        - none
        - openstreetmap
        - light
        - dark
        - satellite
        - voyager
      type: string
    MapHexbinAggregation:
      enum:
        - sum
        - avg
        - min
        - max
      type: string
    MapHexbinValueBasis:
      enum:
        - count
        - field
      type: string
    MapHexbinSizingMode:
      enum:
        - dynamic
        - fixed
      type: string
    MapChartType:
      enum:
        - scatter
        - area
        - heatmap
        - hexbin
      type: string
    MapChartLocation:
      enum:
        - USA
        - world
        - europe
        - custom
      type: string
    SankeyNodeLayout:
      type: string
      enum:
        - multi-step
        - merged
        - direct
      description: |-
        How nodes are laid out:
        - `multi-step`: depth-unrolled journeys (default)
        - `merged`: one node per label, journeys preserved (acyclic flows only)
        - `direct`: two-column source→target pairs, no chaining
    FixedNumberBinDimension:
      properties:
        id:
          type: string
          description: Unique identifier for the custom dimension
        name:
          type: string
          description: Display name for the custom dimension
        table:
          type: string
          description: Table this custom dimension belongs to
        type:
          $ref: '#/components/schemas/CustomDimensionType.BIN'
          description: Type of custom dimension (bin or sql)
        dimensionId:
          $ref: '#/components/schemas/FieldId'
          description: Field ID of the parent dimension to bin
        binType:
          $ref: '#/components/schemas/BinType.FIXED_NUMBER'
        binNumber:
          type: number
          format: double
      required:
        - id
        - name
        - table
        - type
        - dimensionId
        - binType
        - binNumber
      type: object
      additionalProperties: true
    FixedWidthBinDimension:
      properties:
        id:
          type: string
          description: Unique identifier for the custom dimension
        name:
          type: string
          description: Display name for the custom dimension
        table:
          type: string
          description: Table this custom dimension belongs to
        type:
          $ref: '#/components/schemas/CustomDimensionType.BIN'
          description: Type of custom dimension (bin or sql)
        dimensionId:
          $ref: '#/components/schemas/FieldId'
          description: Field ID of the parent dimension to bin
        binType:
          $ref: '#/components/schemas/BinType.FIXED_WIDTH'
        binWidth:
          type: number
          format: double
      required:
        - id
        - name
        - table
        - type
        - dimensionId
        - binType
        - binWidth
      type: object
      additionalProperties: true
    CustomRangeBinDimension:
      properties:
        id:
          type: string
          description: Unique identifier for the custom dimension
        name:
          type: string
          description: Display name for the custom dimension
        table:
          type: string
          description: Table this custom dimension belongs to
        type:
          $ref: '#/components/schemas/CustomDimensionType.BIN'
          description: Type of custom dimension (bin or sql)
        dimensionId:
          $ref: '#/components/schemas/FieldId'
          description: Field ID of the parent dimension to bin
        binType:
          $ref: '#/components/schemas/BinType.CUSTOM_RANGE'
        customRange:
          items:
            $ref: '#/components/schemas/BinRange'
          type: array
      required:
        - id
        - name
        - table
        - type
        - dimensionId
        - binType
        - customRange
      type: object
      additionalProperties: true
    CustomGroupBinDimension:
      properties:
        id:
          type: string
          description: Unique identifier for the custom dimension
        name:
          type: string
          description: Display name for the custom dimension
        table:
          type: string
          description: Table this custom dimension belongs to
        type:
          $ref: '#/components/schemas/CustomDimensionType.BIN'
          description: Type of custom dimension (bin or sql)
        dimensionId:
          $ref: '#/components/schemas/FieldId'
          description: Field ID of the parent dimension to bin
        binType:
          $ref: '#/components/schemas/BinType.CUSTOM_GROUP'
        customGroups:
          items:
            $ref: '#/components/schemas/BinGroup'
          type: array
      required:
        - id
        - name
        - table
        - type
        - dimensionId
        - binType
        - customGroups
      type: object
      additionalProperties: true
    CustomDimensionType.SQL:
      enum:
        - sql
      type: string
    DimensionType:
      enum:
        - string
        - number
        - timestamp
        - date
        - boolean
      type: string
    Compact:
      enum:
        - thousands
        - millions
        - billions
        - trillions
        - kilobytes
        - megabytes
        - gigabytes
        - terabytes
        - petabytes
        - kibibytes
        - mebibytes
        - gibibytes
        - tebibytes
        - pebibytes
      type: string
    FilterOperator:
      enum:
        - isNull
        - notNull
        - equals
        - notEquals
        - startsWith
        - endsWith
        - include
        - doesNotInclude
        - lessThan
        - lessThanOrEqual
        - greaterThan
        - greaterThanOrEqual
        - inThePast
        - notInThePast
        - inTheNext
        - inTheCurrent
        - notInTheCurrent
        - inBetween
        - notInBetween
        - inPeriodToDate
      type: string
    CustomFormatType:
      enum:
        - default
        - percent
        - currency
        - number
        - id
        - date
        - timestamp
        - bytes_si
        - bytes_iec
        - custom
      type: string
    TableCalculationBase:
      properties:
        type:
          $ref: '#/components/schemas/TableCalculationType'
          description: Data type of the calculation result
        format:
          $ref: '#/components/schemas/CustomFormat'
          description: Formatting options for the calculation
        displayName:
          type: string
          description: Display name shown in the UI
        name:
          type: string
          description: Internal name of the table calculation
        index:
          type: number
          format: double
          description: Display order index
      required:
        - displayName
        - name
      type: object
    TableCalculationTemplate:
      anyOf:
        - properties:
            partitionBy:
              items:
                type: string
              type: array
            orderBy:
              items:
                properties:
                  order:
                    type: string
                    enum:
                      - asc
                      - desc
                      - null
                    nullable: true
                  fieldId:
                    type: string
                required:
                  - order
                  - fieldId
                type: object
              type: array
              description: Fields to order by for window functions
            fieldId:
              type: string
              description: Field ID to apply the template to
            type:
              $ref: >-
                #/components/schemas/TableCalculationTemplateType.PERCENT_CHANGE_FROM_PREVIOUS
              description: Type of template calculation
          required:
            - orderBy
            - fieldId
            - type
          type: object
        - properties:
            partitionBy:
              items:
                type: string
              type: array
            orderBy:
              items:
                properties:
                  order:
                    type: string
                    enum:
                      - asc
                      - desc
                      - null
                    nullable: true
                  fieldId:
                    type: string
                required:
                  - order
                  - fieldId
                type: object
              type: array
              description: Fields to order by for window functions
            fieldId:
              type: string
              description: Field ID to apply the template to
            type:
              $ref: >-
                #/components/schemas/TableCalculationTemplateType.PERCENT_OF_PREVIOUS_VALUE
              description: Type of template calculation
          required:
            - orderBy
            - fieldId
            - type
          type: object
        - properties:
            partitionBy:
              items:
                type: string
              type: array
              description: Fields to partition by
            fieldId:
              type: string
              description: Field ID to apply the template to
            type:
              $ref: >-
                #/components/schemas/TableCalculationTemplateType.PERCENT_OF_COLUMN_TOTAL
              description: Type of template calculation
          required:
            - fieldId
            - type
          type: object
        - properties:
            fieldId:
              type: string
              description: Field ID to apply the template to
            type:
              $ref: '#/components/schemas/TableCalculationTemplateType.RANK_IN_COLUMN'
              description: Type of template calculation
          required:
            - fieldId
            - type
          type: object
        - properties:
            fieldId:
              type: string
              description: Field ID to apply the template to
            type:
              $ref: '#/components/schemas/TableCalculationTemplateType.RUNNING_TOTAL'
              description: Type of template calculation
          required:
            - fieldId
            - type
          type: object
        - properties:
            frame:
              $ref: '#/components/schemas/FrameClause'
              description: Frame clause for window functions
            partitionBy:
              items:
                type: string
              type: array
              description: Fields to partition by for window functions
            orderBy:
              items:
                properties:
                  order:
                    type: string
                    enum:
                      - asc
                      - desc
                      - null
                    nullable: true
                  fieldId:
                    type: string
                required:
                  - order
                  - fieldId
                type: object
              type: array
              description: Fields to order by for window functions
            fieldId:
              type: string
              nullable: true
              description: Field ID to apply the template to
            windowFunction:
              $ref: '#/components/schemas/WindowFunctionType'
              description: Window function type
            type:
              $ref: >-
                #/components/schemas/TableCalculationTemplateType.WINDOW_FUNCTION
              description: Type of template calculation
          required:
            - partitionBy
            - orderBy
            - fieldId
            - windowFunction
            - type
          type: object
    OrFilterGroup:
      properties:
        or:
          items:
            $ref: '#/components/schemas/FilterGroupItem'
          type: array
          description: Array of filters or nested groups combined with OR logic
        id:
          type: string
          description: Unique identifier for the filter group
      required:
        - or
        - id
      type: object
    AndFilterGroup:
      properties:
        and:
          items:
            $ref: '#/components/schemas/FilterGroupItem'
          type: array
          description: Array of filters or nested groups combined with AND logic
        id:
          type: string
          description: Unique identifier for the filter group
      required:
        - and
        - id
      type: object
    Required_CreateDashboardTileBase_:
      properties:
        uuid:
          type: string
        type:
          $ref: '#/components/schemas/DashboardTileTypes'
        x:
          type: number
          format: double
        'y':
          type: number
          format: double
        h:
          type: number
          format: double
        w:
          type: number
          format: double
        tabUuid:
          type: string
          nullable: true
      required:
        - uuid
        - type
        - x
        - 'y'
        - h
        - w
      type: object
      description: Make all properties in T required
    DashboardTileTypes.SAVED_CHART:
      enum:
        - saved_chart
      type: string
    DashboardTileTypes.MARKDOWN:
      enum:
        - markdown
      type: string
    DashboardTileTypes.LOOM:
      enum:
        - loom
      type: string
    DashboardTileTypes.SQL_CHART:
      enum:
        - sql_chart
      type: string
    DashboardTileTypes.HEADING:
      enum:
        - heading
      type: string
    DashboardTileTypes.DATA_APP:
      enum:
        - data_app
      type: string
    DashboardFieldTarget:
      properties:
        fallbackType:
          $ref: '#/components/schemas/DimensionType'
        isSqlColumn:
          type: boolean
        tableName:
          type: string
        fieldId:
          type: string
      required:
        - tableName
        - fieldId
      type: object
    DashboardTileTarget:
      anyOf:
        - $ref: '#/components/schemas/DashboardFieldTarget'
        - type: boolean
          enum:
            - false
    DateZoomTileTarget:
      properties:
        tableName:
          type: string
        fieldId:
          type: string
        controlUuid:
          type: string
      required:
        - tableName
        - fieldId
        - controlUuid
      type: object
    ConditionalFormattingConfigWithSingleColor:
      properties:
        textStyle:
          $ref: '#/components/schemas/ConditionalFormattingTextStyle'
          description: Text styling (bold/italic/underline) applied to matching cell text
        applyTo:
          $ref: '#/components/schemas/ConditionalFormattingColorApplyTo'
          description: Apply formatting to cell background or text
        rules:
          items:
            $ref: '#/components/schemas/ConditionalFormattingWithFilterOperator'
          type: array
          description: Rules for single-color conditional formatting
        darkColor:
          type: string
          description: Color for dark mode
        color:
          type: string
          description: Color for single-color conditional formatting
        target:
          allOf:
            - $ref: '#/components/schemas/FieldTarget'
          nullable: true
          description: Target field for the formatting rule
      required:
        - rules
        - color
        - target
      type: object
    ConditionalFormattingConfigWithColorRange:
      properties:
        textStyle:
          $ref: '#/components/schemas/ConditionalFormattingTextStyle'
          description: Text styling (bold/italic/underline) applied to matching cell text
        applyTo:
          $ref: '#/components/schemas/ConditionalFormattingColorApplyTo'
          description: Apply formatting to cell background or text
        rule:
          $ref: '#/components/schemas/ConditionalFormattingMinMax_number-or-auto_'
          description: Rule for color range formatting (min/max values)
        color:
          $ref: '#/components/schemas/ConditionalFormattingColorRange'
          description: Color range for gradient conditional formatting
        target:
          allOf:
            - $ref: '#/components/schemas/FieldTarget'
          nullable: true
          description: Target field for the formatting rule
      required:
        - rule
        - color
        - target
      type: object
    SeriesMetadata:
      properties:
        color:
          type: string
          description: Color for the series
      required:
        - color
      type: object
    Partial_CompleteEChartsConfig_:
      properties:
        legend:
          $ref: '#/components/schemas/EchartsLegend'
          description: Legend configuration
        grid:
          $ref: '#/components/schemas/EchartsGrid'
          description: Grid (chart area) configuration
        series:
          items:
            $ref: '#/components/schemas/Series'
          type: array
          description: Chart series configuration
        xAxis:
          items:
            $ref: '#/components/schemas/XAxis'
          type: array
          description: X axis configuration
        yAxis:
          items:
            $ref: '#/components/schemas/Axis'
          type: array
          description: Y axis configuration
        tooltip:
          type: string
          description: Tooltip formatter template
        tooltipSort:
          $ref: '#/components/schemas/TooltipSortBy'
          description: How to sort tooltip items
        showAxisTicks:
          type: boolean
          description: Show tick marks on axes
        axisLabelFontSize:
          type: number
          format: double
          description: Font size for axis labels
        axisTitleFontSize:
          type: number
          format: double
          description: Font size for axis titles
      type: object
      description: Make all properties in T optional
    Partial_CompleteCartesianChartLayout_:
      properties:
        xField:
          type: string
          description: Field ID to use for the X axis
        yField:
          items:
            type: string
          type: array
          description: Field IDs to use for the Y axis
        flipAxes:
          type: boolean
          description: Swap X and Y axes (creates horizontal bar charts)
        showGridX:
          type: boolean
          description: Show vertical grid lines
        showGridY:
          type: boolean
          description: Show horizontal grid lines
        showXAxis:
          type: boolean
          description: Show the X axis
        showYAxis:
          type: boolean
          description: Show the Y axis
        showLeftYAxis:
          type: boolean
          description: Controls left/primary Y-axis visibility
        showRightYAxis:
          type: boolean
          description: Controls right/secondary Y-axis visibility
        stack:
          anyOf:
            - type: string
            - type: boolean
          description: >-
            Stack series together (true for default stacking, or string for
            stack group name)
        connectNulls:
          type: boolean
          description: Connect null data points with a line
        colorByCategory:
          type: boolean
          description: >-
            Color each bar by its category value instead of using a single
            series color
        categoryColorOverrides:
          $ref: '#/components/schemas/Record_string.string_'
          description: Per-category color overrides (maps category value to hex color)
      type: object
      description: Make all properties in T optional
    Partial_PieChartValueOptions_:
      properties:
        valueLabel:
          type: string
          enum:
            - hidden
            - inside
            - outside
        showValue:
          type: boolean
        showPercentage:
          type: boolean
      type: object
      description: Make all properties in T optional
    ColumnProperties:
      properties:
        width:
          type: number
          format: double
        color:
          type: string
          description: Color for bar display style (hex code)
        displayStyle:
          type: string
          enum:
            - text
            - bar
          description: How to display the cell value
        frozen:
          type: boolean
          description: Freeze the column (stick to left side)
        name:
          type: string
          description: Custom display name for the column
        visible:
          type: boolean
          description: Whether the column is visible
      type: object
    MapFieldConfig:
      properties:
        label:
          type: string
          description: Custom label for the field
        visible:
          type: boolean
          description: Whether to show this field in tooltips
      type: object
    CustomDimensionType.BIN:
      enum:
        - bin
      type: string
    BinType.FIXED_NUMBER:
      enum:
        - fixed_number
      type: string
    BinType.FIXED_WIDTH:
      enum:
        - fixed_width
      type: string
    BinType.CUSTOM_RANGE:
      enum:
        - custom_range
      type: string
    BinRange:
      properties:
        to:
          type: number
          format: double
          description: End value for this bin range (undefined for the last range)
        from:
          type: number
          format: double
          description: Start value for this bin range (undefined for the first range)
      type: object
    BinType.CUSTOM_GROUP:
      enum:
        - custom_group
      type: string
    BinGroup:
      properties:
        values:
          items:
            $ref: '#/components/schemas/GroupValueRule'
          type: array
          description: Rules that match values into this group
        name:
          type: string
          description: Display name for this group (e.g. "North America")
      required:
        - values
        - name
      type: object
    TableCalculationType:
      enum:
        - number
        - string
        - date
        - timestamp
        - boolean
      type: string
    TableCalculationTemplateType.PERCENT_CHANGE_FROM_PREVIOUS:
      enum:
        - percent_change_from_previous
      type: string
    TableCalculationTemplateType.PERCENT_OF_PREVIOUS_VALUE:
      enum:
        - percent_of_previous_value
      type: string
    TableCalculationTemplateType.PERCENT_OF_COLUMN_TOTAL:
      enum:
        - percent_of_column_total
      type: string
    TableCalculationTemplateType.RANK_IN_COLUMN:
      enum:
        - rank_in_column
      type: string
    TableCalculationTemplateType.RUNNING_TOTAL:
      enum:
        - running_total
      type: string
    FrameClause:
      properties:
        end:
          $ref: '#/components/schemas/FrameBoundary'
          description: End boundary of the frame
        start:
          $ref: '#/components/schemas/FrameBoundary'
          description: Start boundary of the frame
        frameType:
          $ref: '#/components/schemas/FrameType'
          description: Type of frame (ROWS or RANGE)
      required:
        - end
        - frameType
      type: object
    WindowFunctionType:
      enum:
        - row_number
        - percent_rank
        - cume_dist
        - rank
        - sum
        - avg
        - count
        - min
        - max
      type: string
    TableCalculationTemplateType.WINDOW_FUNCTION:
      enum:
        - window_function
      type: string
    FilterGroupItem:
      anyOf:
        - $ref: '#/components/schemas/FilterGroup'
        - $ref: '#/components/schemas/FilterRule'
    DashboardTileTypes:
      enum:
        - saved_chart
        - sql_chart
        - markdown
        - loom
        - heading
        - data_app
      type: string
    ConditionalFormattingTextStyle:
      properties:
        underline:
          type: boolean
          description: Underline matching cell text
        italic:
          type: boolean
          description: Render matching cell text in italics
        bold:
          type: boolean
          description: Render matching cell text in bold
      type: object
    ConditionalFormattingColorApplyTo:
      enum:
        - cell
        - text
        - row
      type: string
    ConditionalFormattingWithFilterOperator:
      anyOf:
        - $ref: >-
            #/components/schemas/ConditionalFormattingWithValues_number-or-string_
        - $ref: >-
            #/components/schemas/ConditionalFormattingWithCompareTarget_number-or-string_
    FieldTarget:
      properties:
        fieldId:
          type: string
          description: Field ID to filter on
      required:
        - fieldId
      type: object
    ConditionalFormattingMinMax_number-or-auto_:
      properties:
        max:
          anyOf:
            - type: number
              format: double
            - type: string
              enum:
                - auto
          description: Maximum value (number or 'auto')
        min:
          anyOf:
            - type: number
              format: double
            - type: string
              enum:
                - auto
          description: Minimum value (number or 'auto')
      required:
        - max
        - min
      type: object
    ConditionalFormattingColorRange:
      properties:
        end:
          type: string
          description: End color for gradient
        start:
          type: string
          description: Start color for gradient
      required:
        - end
        - start
      type: object
    EchartsLegend:
      properties:
        placement:
          $ref: '#/components/schemas/LegendPlacement'
          description: |-
            High-level placement preset. Overrides orient/top/right/bottom/left
            when set to an outside value.
        icon:
          type: string
          enum:
            - circle
            - rect
            - roundRect
            - triangle
            - diamond
            - pin
            - arrow
            - none
          description: Legend icon shape
        align:
          type: string
          enum:
            - auto
            - left
            - right
          description: Legend alignment
        height:
          type: string
          description: Legend height
        width:
          type: string
          description: Legend width
        left:
          type: string
          description: Left position
        bottom:
          type: string
          description: Bottom position
        right:
          type: string
          description: Right position
        top:
          type: string
          description: Top position
        orient:
          type: string
          enum:
            - horizontal
            - vertical
          description: Legend orientation
        type:
          type: string
          enum:
            - plain
            - scroll
          description: Legend type (plain or scrollable)
        show:
          type: boolean
          description: Show the legend
      type: object
    EchartsGrid:
      properties:
        height:
          type: string
          description: Grid height
        width:
          type: string
          description: Grid width
        left:
          type: string
          description: Left padding
        bottom:
          type: string
          description: Bottom padding
        right:
          type: string
          description: Right padding
        top:
          type: string
          description: Top padding
        containLabel:
          type: boolean
          description: Whether the grid area contains axis labels
      type: object
    Series:
      properties:
        isFilteredOut:
          type: boolean
          description: Whether this series is currently filtered out
        markLine:
          $ref: '#/components/schemas/MarkLine'
          description: Reference line configuration
        smooth:
          type: boolean
          description: Use smooth curves for line/area charts
        showSymbol:
          type: boolean
          description: Show symbols/markers on data points
        areaStyle:
          $ref: '#/components/schemas/Record_string.unknown_'
          description: Area fill style (presence indicates area chart)
        hidden:
          type: boolean
          description: Hide this series from the chart
        label:
          properties:
            showSeriesName:
              type: boolean
              description: Show the metric field name
            showLabel:
              type: boolean
              description: Show the legend/pivot name
            showValue:
              type: boolean
              description: Show the metric value
            showOverlappingLabels:
              type: boolean
              description: Show labels even when they overlap
            position:
              type: string
              enum:
                - left
                - top
                - right
                - bottom
                - inside
              description: Position of data labels
            show:
              type: boolean
              description: Show data labels on points
          type: object
          description: Data label configuration
        yAxisIndex:
          type: number
          format: double
          description: Index of Y axis to use (for dual Y axis charts)
        color:
          type: string
          description: Color for the series (hex code)
        name:
          type: string
          description: Display name for the series
        stackLabel:
          properties:
            show:
              type: boolean
              description: Show stack total labels
          type: object
          description: Stack total label configuration
        stack:
          type: string
          description: Stack group name (series with same stack name are stacked)
        type:
          $ref: '#/components/schemas/CartesianSeriesType'
          description: Series visualization type
        encode:
          properties:
            'y':
              type: string
              description: Hash of yRef (computed)
            x:
              type: string
              description: Hash of xRef (computed)
            yRef:
              $ref: '#/components/schemas/PivotReference'
              description: Y axis field reference
            xRef:
              $ref: '#/components/schemas/PivotReference'
              description: X axis field reference
          required:
            - yRef
            - xRef
          type: object
          description: Field references for this series
      required:
        - type
        - encode
      type: object
    XAxis:
      allOf:
        - $ref: '#/components/schemas/Axis'
        - properties:
            dataZoomItemCount:
              type: number
              format: double
              description: Number of items visible at once in the data-zoom window
            dataZoomAnchor:
              type: string
              enum:
                - start
                - end
              description: >-
                Where the initial data-zoom window anchors when data zoom is
                enabled
            enableDataZoom:
              type: boolean
              description: Enable data zoom slider for this axis
            sortType:
              $ref: '#/components/schemas/XAxisSortType'
              description: How to sort the X axis
          type: object
    Axis:
      properties:
        rotate:
          type: number
          format: double
          description: Rotation angle for axis labels
        inverse:
          type: boolean
          description: Reverse the axis direction
        maxOffset:
          type: string
          description: Offset from maximum value
        minOffset:
          type: string
          description: Offset from minimum value
        minInterval:
          type: number
          format: double
          description: Minimum interval between ticks (e.g. 1 to force integer ticks)
        max:
          type: string
          description: Maximum value (or 'dataMax' for auto)
        min:
          type: string
          description: Minimum value (or 'dataMin' for auto)
        name:
          type: string
          description: Axis title
      type: object
    TooltipSortBy:
      type: string
      enum:
        - default
        - alphabetical
        - value_ascending
        - value_descending
    GroupValueRule:
      properties:
        value:
          type: string
        matchType:
          $ref: '#/components/schemas/GroupValueMatchType'
      required:
        - value
        - matchType
      type: object
    FrameBoundary:
      properties:
        offset:
          type: number
          format: double
          description: Offset for PRECEDING/FOLLOWING
        type:
          $ref: '#/components/schemas/FrameBoundaryType'
          description: Boundary type
      required:
        - type
      type: object
    FrameType:
      enum:
        - rows
        - range
      type: string
    FilterRule:
      properties:
        values:
          items:
            $ref: '#/components/schemas/AnyType'
          type: array
          description: Values to filter by
        operator:
          $ref: '#/components/schemas/FilterOperator'
          description: Filter operator
        id:
          type: string
          description: Unique identifier for the filter
        target:
          $ref: '#/components/schemas/FieldTarget'
          description: Target field for the filter
        settings:
          $ref: '#/components/schemas/AnyType'
          description: Additional settings for date/time filters
        disabled:
          type: boolean
          description: Whether this filter is disabled
        required:
          type: boolean
          description: Whether this filter is required
        caseSensitive:
          type: boolean
          description: >-
            Overrides the field/explore case-sensitivity for this rule only.

            Used by internal features like autocomplete search that must always

            match case-insensitively regardless of the field's configured
            setting.
      required:
        - operator
        - id
        - target
      type: object
      additionalProperties: true
    ConditionalFormattingWithValues_number-or-string_:
      allOf:
        - $ref: '#/components/schemas/BaseFilterRule_FilterOperator.number-or-string_'
        - properties:
            values:
              items:
                anyOf:
                  - type: number
                    format: double
                  - type: string
              type: array
              description: Values to compare against
          required:
            - values
          type: object
    ConditionalFormattingWithCompareTarget_number-or-string_:
      allOf:
        - $ref: '#/components/schemas/BaseFilterRule_FilterOperator.number-or-string_'
        - properties:
            values:
              items:
                anyOf:
                  - type: number
                    format: double
                  - type: string
              type: array
              description: Values to compare against
            compareTarget:
              allOf:
                - $ref: '#/components/schemas/FieldTarget'
              nullable: true
              description: Target field to compare against
          required:
            - compareTarget
          type: object
    LegendPlacement:
      type: string
      enum:
        - custom
        - outsideRight
        - outsideLeft
      description: >-
        High-level legend placement preset. Set to 'outsideRight' or
        'outsideLeft' to

        render the legend beside the plot with reserved grid space. Undefined
        behaves

        like 'custom' (no override of the existing legend position fields).
    MarkLine:
      properties:
        label:
          properties:
            formatter:
              type: string
              description: Label formatter
          type: object
          description: Label configuration
        lineStyle:
          properties:
            type:
              type: string
              description: Line type
            width:
              type: number
              format: double
              description: Line width
            color:
              type: string
              description: Line color
          required:
            - type
            - width
            - color
          type: object
          description: Line style configuration
        symbol:
          type: string
          description: Symbol at line endpoints
        data:
          items:
            $ref: '#/components/schemas/MarkLineData'
          type: array
          description: Reference line data points
      required:
        - data
      type: object
    CartesianSeriesType:
      enum:
        - line
        - bar
        - scatter
        - area
      type: string
    PivotReference:
      properties:
        pivotValues:
          items:
            $ref: '#/components/schemas/PivotValue'
          type: array
          description: Pivot values for this reference (for pivoted data)
        field:
          type: string
          description: Field ID being referenced
      required:
        - field
      type: object
    XAxisSortType:
      enum:
        - default
        - category
        - bar_totals
      type: string
    GroupValueMatchType:
      enum:
        - exact
        - startsWith
        - endsWith
        - includes
      type: string
    FrameBoundaryType:
      enum:
        - unbounded_preceding
        - preceding
        - current_row
        - following
        - unbounded_following
      type: string
    BaseFilterRule_FilterOperator.number-or-string_:
      properties:
        values:
          items:
            anyOf:
              - type: number
                format: double
              - type: string
          type: array
          description: Values to filter by
        operator:
          $ref: '#/components/schemas/FilterOperator'
          description: Filter operator
        id:
          type: string
          description: Unique identifier for the filter rule
      required:
        - operator
        - id
      type: object
    MarkLineData:
      properties:
        dynamicValue:
          type: string
          enum:
            - average
          nullable: false
          description: Dynamic value type
        label:
          properties:
            position:
              type: string
              enum:
                - start
                - middle
                - end
              description: Label position
            formatter:
              type: string
              description: Label formatter
          type: object
          description: Label configuration for this data point
        lineStyle:
          properties:
            color:
              type: string
              description: Line color
          required:
            - color
          type: object
          description: Line style for this data point
        uuid:
          type: string
          description: Unique identifier for this mark line
        type:
          type: string
          description: Point type (e.g., 'average')
        value:
          type: string
          description: Value to display
        name:
          type: string
          description: Name of the reference line
        xAxis:
          type: string
          description: X axis value for vertical line
        yAxis:
          type: string
          description: Y axis value for horizontal line
      required:
        - uuid
      type: object
    PivotValue:
      properties:
        value:
          description: Pivot value
        field:
          type: string
          description: Pivot field ID
      required:
        - value
        - field
      type: object

````