> ## 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.

# Get apiv1projects aiagents threads 1



## OpenAPI

````yaml https://raw.githubusercontent.com/lightdash/lightdash/refs/heads/main/packages/backend/src/generated/swagger.json get /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}
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}/aiAgents/{agentUuid}/threads/{threadUuid}:
    get:
      operationId: getAgentThread
      parameters:
        - in: path
          name: projectUuid
          required: true
          schema:
            type: string
        - in: path
          name: agentUuid
          required: true
          schema:
            type: string
        - in: path
          name: threadUuid
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentThreadResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
components:
  schemas:
    ApiAiAgentThreadResponse:
      properties:
        results:
          $ref: '#/components/schemas/AiAgentThread'
        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
    AiAgentThread:
      allOf:
        - $ref: '#/components/schemas/AiAgentThreadSummary_AiAgentUser_'
        - properties:
            compactions:
              items:
                $ref: '#/components/schemas/AiThreadCompaction'
              type: array
            messages:
              items:
                $ref: '#/components/schemas/AiAgentMessage_AiAgentUser_'
              type: array
          required:
            - compactions
            - messages
          type: object
    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.
    AiAgentThreadSummary_AiAgentUser_:
      properties:
        user:
          $ref: '#/components/schemas/AiAgentUser'
        firstMessage:
          properties:
            message:
              type: string
            uuid:
              type: string
          required:
            - message
            - uuid
          type: object
        titleGeneratedAt:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        createdFrom:
          type: string
        createdAt:
          type: string
        agentUuid:
          type: string
        uuid:
          type: string
      required:
        - user
        - firstMessage
        - titleGeneratedAt
        - title
        - createdFrom
        - createdAt
        - agentUuid
        - uuid
      type: object
    AiThreadCompaction:
      properties:
        createdAt:
          type: string
        triggeringPromptUuid:
          type: string
        compactedThroughPromptUuid:
          type: string
        threadUuid:
          type: string
        uuid:
          type: string
      required:
        - createdAt
        - triggeringPromptUuid
        - compactedThroughPromptUuid
        - threadUuid
        - uuid
      type: object
    AiAgentMessage_AiAgentUser_:
      anyOf:
        - $ref: '#/components/schemas/AiAgentMessageUser_AiAgentUser_'
        - $ref: '#/components/schemas/AiAgentMessageAssistant'
    AiAgentUser:
      properties:
        name:
          type: string
        uuid:
          type: string
      required:
        - name
        - uuid
      type: object
    AiAgentMessageUser_AiAgentUser_:
      properties:
        hidden:
          type: boolean
          description: >-
            Hidden turn: the agent received and responded to this prompt, but
            the UI

            should not render its user bubble (e.g. the post-merge migration
            prompt

            injected from the writeback PR card).
        steers:
          items:
            $ref: '#/components/schemas/AiPromptSteer'
          type: array
        context:
          $ref: '#/components/schemas/AiPromptContext'
        user:
          $ref: '#/components/schemas/AiAgentUser'
        createdAt:
          type: string
        message:
          type: string
        threadUuid:
          type: string
        uuid:
          type: string
        role:
          type: string
          enum:
            - user
          nullable: false
      required:
        - hidden
        - steers
        - context
        - user
        - createdAt
        - message
        - threadUuid
        - uuid
        - role
      type: object
    AiAgentMessageAssistant:
      properties:
        tokenUsage:
          allOf:
            - $ref: '#/components/schemas/AiPromptTokenUsage'
          nullable: true
        modelConfig:
          allOf:
            - $ref: '#/components/schemas/AiAgentModelConfig'
          nullable: true
        referencedArtifacts:
          items:
            $ref: '#/components/schemas/AiAgentMessageAssistantArtifact'
          type: array
          nullable: true
        artifacts:
          items:
            $ref: '#/components/schemas/AiAgentMessageAssistantArtifact'
          type: array
          nullable: true
        savedQueryUuid:
          type: string
          nullable: true
        reasoning:
          items:
            $ref: '#/components/schemas/AiAgentReasoning'
          type: array
        toolResults:
          items:
            $ref: '#/components/schemas/AiAgentToolResult'
          type: array
        toolCalls:
          items:
            $ref: '#/components/schemas/AiAgentToolCall'
          type: array
        humanFeedback:
          type: string
          nullable: true
        humanScore:
          type: number
          format: double
          nullable: true
        createdAt:
          type: string
        interrupted:
          type: boolean
        errorMessage:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
        threadUuid:
          type: string
        uuid:
          type: string
        status:
          type: string
          enum:
            - idle
            - pending
            - error
        role:
          type: string
          enum:
            - assistant
          nullable: false
      required:
        - tokenUsage
        - modelConfig
        - referencedArtifacts
        - artifacts
        - savedQueryUuid
        - reasoning
        - toolResults
        - toolCalls
        - humanScore
        - createdAt
        - interrupted
        - errorMessage
        - message
        - threadUuid
        - uuid
        - status
        - role
      type: object
    AiPromptSteer:
      properties:
        consumedStep:
          type: number
          format: double
          nullable: true
        consumedAt:
          type: string
          nullable: true
        createdAt:
          type: string
        message:
          type: string
        promptUuid:
          type: string
        uuid:
          type: string
      required:
        - consumedStep
        - consumedAt
        - createdAt
        - message
        - promptUuid
        - uuid
      type: object
    AiPromptContext:
      items:
        $ref: '#/components/schemas/AiPromptContextItem'
      type: array
    AiPromptTokenUsage:
      properties:
        totalTokens:
          type: number
          format: double
      required:
        - totalTokens
      type: object
    AiAgentModelConfig:
      properties:
        reasoning:
          type: boolean
        modelProvider:
          type: string
        modelName:
          type: string
      required:
        - modelProvider
        - modelName
      type: object
    AiAgentMessageAssistantArtifact:
      $ref: >-
        #/components/schemas/Pick_AiArtifact.artifactUuid-or-versionNumber-or-versionUuid-or-title-or-description-or-artifactType_
    AiAgentReasoning:
      properties:
        createdAt:
          type: string
          format: date-time
        text:
          type: string
        reasoningId:
          type: string
        promptUuid:
          type: string
        uuid:
          type: string
      required:
        - createdAt
        - text
        - reasoningId
        - promptUuid
        - uuid
      type: object
    AiAgentToolResult:
      allOf:
        - $ref: '#/components/schemas/AiAgentBaseToolResult'
        - anyOf:
            - properties:
                metadata:
                  anyOf:
                    - properties:
                        userFeedback:
                          type: string
                          enum:
                            - accepted
                            - rejected
                        changeUuid:
                          type: string
                        status:
                          type: string
                          enum:
                            - success
                          nullable: false
                      required:
                        - changeUuid
                        - status
                      type: object
                    - properties:
                        status:
                          type: string
                          enum:
                            - error
                          nullable: false
                      required:
                        - status
                      type: object
                toolName:
                  type: string
                  enum:
                    - proposeChange
                  nullable: false
                toolType:
                  type: string
                  enum:
                    - built-in
                  nullable: false
              required:
                - metadata
                - toolName
                - toolType
              type: object
            - properties:
                metadata:
                  anyOf:
                    - properties:
                        userFeedback:
                          type: string
                          enum:
                            - accepted
                            - rejected
                        changeUuid:
                          type: string
                        status:
                          type: string
                          enum:
                            - success
                          nullable: false
                      required:
                        - changeUuid
                        - status
                      type: object
                    - properties:
                        status:
                          type: string
                          enum:
                            - error
                          nullable: false
                      required:
                        - status
                      type: object
                    - properties:
                        status:
                          type: string
                          enum:
                            - error
                            - success
                      required:
                        - status
                      type: object
                    - properties:
                        ranking:
                          properties:
                            topMatchingFields:
                              items:
                                properties:
                                  verifiedChartUsage:
                                    type: number
                                    format: double
                                    nullable: true
                                  chartUsage:
                                    type: number
                                    format: double
                                    nullable: true
                                  searchRank:
                                    type: number
                                    format: double
                                    nullable: true
                                  fieldType:
                                    type: string
                                  label:
                                    type: string
                                  tableName:
                                    type: string
                                  name:
                                    type: string
                                required:
                                  - fieldType
                                  - label
                                  - tableName
                                  - name
                                type: object
                              type: array
                            exploreSearchResults:
                              items:
                                properties:
                                  searchRank:
                                    type: number
                                    format: double
                                    nullable: true
                                  joinedTables:
                                    items:
                                      type: string
                                    type: array
                                    nullable: true
                                  requiredFilters:
                                    items:
                                      properties:
                                        settings: {}
                                        values:
                                          items: {}
                                          type: array
                                        required:
                                          type: boolean
                                        tableName:
                                          type: string
                                        fieldRef:
                                          type: string
                                        fieldId:
                                          type: string
                                        operator:
                                          type: string
                                      required:
                                        - required
                                        - tableName
                                        - fieldRef
                                        - fieldId
                                        - operator
                                      type: object
                                    type: array
                                  label:
                                    type: string
                                  name:
                                    type: string
                                required:
                                  - label
                                  - name
                                type: object
                              type: array
                            searchQuery:
                              type: string
                          required:
                            - searchQuery
                          type: object
                        status:
                          type: string
                          enum:
                            - error
                            - success
                      required:
                        - status
                      type: object
                    - properties:
                        ranking:
                          properties:
                            searchQueries:
                              items:
                                properties:
                                  pagination:
                                    properties:
                                      totalPageCount:
                                        type: number
                                        format: double
                                      totalResults:
                                        type: number
                                        format: double
                                      pageSize:
                                        type: number
                                        format: double
                                      page:
                                        type: number
                                        format: double
                                    required:
                                      - totalPageCount
                                      - totalResults
                                      - pageSize
                                      - page
                                    type: object
                                  results:
                                    items:
                                      properties:
                                        verifiedChartUsage:
                                          type: number
                                          format: double
                                          nullable: true
                                        chartUsage:
                                          type: number
                                          format: double
                                          nullable: true
                                        searchRank:
                                          type: number
                                          format: double
                                          nullable: true
                                        fieldType:
                                          type: string
                                        label:
                                          type: string
                                        tableName:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                        - fieldType
                                        - label
                                        - tableName
                                        - name
                                      type: object
                                    type: array
                                  label:
                                    type: string
                                required:
                                  - results
                                  - label
                                type: object
                              type: array
                          required:
                            - searchQueries
                          type: object
                        status:
                          type: string
                          enum:
                            - error
                            - success
                      required:
                        - status
                      type: object
                    - properties:
                        contentSizeBytes:
                          type: number
                          format: double
                        status:
                          type: string
                          enum:
                            - success
                          nullable: false
                        name:
                          type: string
                      required:
                        - contentSizeBytes
                        - status
                        - name
                      type: object
                    - properties:
                        status:
                          type: string
                          enum:
                            - error
                            - success
                            - not_found
                      required:
                        - status
                      type: object
                    - properties:
                        streamingMessage: {}
                        status:
                          type: string
                          enum:
                            - streaming
                          nullable: false
                      required:
                        - status
                      type: object
                    - properties:
                        streamingMessage: {}
                        discovery:
                          anyOf:
                            - properties:
                                fields:
                                  items:
                                    properties:
                                      isFromJoinedTable:
                                        type: boolean
                                      caseSensitiveFilters:
                                        type: string
                                        enum:
                                          - 'false'
                                          - 'true'
                                          - not_applicable
                                      fieldValueType:
                                        type: string
                                      fieldFilterType:
                                        type: string
                                      fieldType:
                                        type: string
                                        enum:
                                          - dimension
                                          - metric
                                      description:
                                        type: string
                                        nullable: true
                                      label:
                                        type: string
                                      fieldId:
                                        type: string
                                      name:
                                        type: string
                                      table:
                                        type: string
                                    required:
                                      - isFromJoinedTable
                                      - caseSensitiveFilters
                                      - fieldValueType
                                      - fieldFilterType
                                      - fieldType
                                      - description
                                      - label
                                      - fieldId
                                      - name
                                      - table
                                    type: object
                                  type: array
                                rationale:
                                  type: string
                                  nullable: true
                                explore:
                                  properties:
                                    requiredFilters:
                                      items:
                                        properties:
                                          settings: {}
                                          values:
                                            items: {}
                                            type: array
                                          required:
                                            type: boolean
                                          tableName:
                                            type: string
                                          fieldRef:
                                            type: string
                                          fieldId:
                                            type: string
                                          operator:
                                            type: string
                                        required:
                                          - required
                                          - tableName
                                          - fieldRef
                                          - fieldId
                                          - operator
                                        type: object
                                      type: array
                                    joinedTables:
                                      items:
                                        type: string
                                      type: array
                                    baseTable:
                                      type: string
                                    label:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                    - joinedTables
                                    - baseTable
                                    - label
                                    - name
                                  type: object
                                status:
                                  type: string
                                  enum:
                                    - resolved
                                  nullable: false
                              required:
                                - fields
                                - rationale
                                - explore
                                - status
                              type: object
                            - properties:
                                suggestedQuestion:
                                  type: string
                                candidates:
                                  items:
                                    properties:
                                      exploreLabel:
                                        type: string
                                      reason:
                                        type: string
                                      exploreName:
                                        type: string
                                    required:
                                      - exploreLabel
                                      - reason
                                      - exploreName
                                    type: object
                                  type: array
                                status:
                                  type: string
                                  enum:
                                    - ambiguous
                                  nullable: false
                              required:
                                - suggestedQuestion
                                - candidates
                                - status
                              type: object
                            - properties:
                                reason:
                                  type: string
                                status:
                                  type: string
                                  enum:
                                    - no_match
                                  nullable: false
                              required:
                                - reason
                                - status
                              type: object
                        status:
                          type: string
                          enum:
                            - success
                          nullable: false
                      required:
                        - discovery
                        - status
                      type: object
                    - properties:
                        versionUuids:
                          properties:
                            after:
                              type: string
                              nullable: true
                            before:
                              type: string
                              nullable: true
                          required:
                            - after
                            - before
                          type: object
                        href:
                          type: string
                        status:
                          type: string
                          enum:
                            - success
                          nullable: false
                        slug:
                          type: string
                        uuid:
                          type: string
                        warnings:
                          items:
                            type: string
                          type: array
                        name:
                          type: string
                      required:
                        - versionUuids
                        - href
                        - status
                        - slug
                        - uuid
                        - warnings
                        - name
                      type: object
                    - properties:
                        previewUrl:
                          type: string
                          nullable: true
                        deletions:
                          type: number
                          format: double
                          nullable: true
                        additions:
                          type: number
                          format: double
                          nullable: true
                        commitSha:
                          type: string
                          nullable: true
                        prAction:
                          type: string
                          enum:
                            - opened
                            - updated
                            - null
                          nullable: true
                        steps:
                          items:
                            properties:
                              kind:
                                type: string
                                enum:
                                  - search
                                  - read
                                  - edit
                                  - compile
                                  - stage
                              label:
                                type: string
                            required:
                              - kind
                              - label
                            type: object
                          type: array
                          nullable: true
                        prUrl:
                          type: string
                          nullable: true
                        status:
                          type: string
                          enum:
                            - success
                          nullable: false
                      required:
                        - prUrl
                        - status
                      type: object
                    - properties:
                        errorCode:
                          type: string
                          enum:
                            - unknown
                            - unsupported_source_control
                            - github_not_installed
                            - gitlab_not_installed
                            - pull_request_not_open
                            - git_write_permission
                            - null
                          nullable: true
                        status:
                          type: string
                          enum:
                            - error
                          nullable: false
                      required:
                        - status
                      type: object
                    - properties:
                        href:
                          type: string
                        status:
                          type: string
                          enum:
                            - success
                          nullable: false
                        slug:
                          type: string
                        name:
                          type: string
                      required:
                        - href
                        - status
                        - slug
                        - name
                      type: object
                    - properties:
                        chartImageUrl:
                          type: string
                          nullable: true
                        status:
                          type: string
                          enum:
                            - error
                            - success
                      required:
                        - status
                      type: object
                    - properties:
                        status:
                          type: string
                          enum:
                            - error
                            - rejected
                            - success
                            - timeout
                      required:
                        - status
                      type: object
                    - properties:
                        ranking:
                          properties:
                            searchQuery:
                              type: string
                              nullable: true
                            fields:
                              items:
                                properties:
                                  chartUsage:
                                    type: number
                                    format: double
                                    nullable: true
                                  searchRank:
                                    type: number
                                    format: double
                                    nullable: true
                                  fieldType:
                                    type: string
                                  label:
                                    type: string
                                  tableName:
                                    type: string
                                  name:
                                    type: string
                                required:
                                  - fieldType
                                  - label
                                  - tableName
                                  - name
                                type: object
                              type: array
                            type:
                              type: string
                              enum:
                                - dimension
                                - metric
                                - null
                              nullable: true
                          required:
                            - searchQuery
                            - fields
                            - type
                          type: object
                        status:
                          type: string
                          enum:
                            - error
                            - success
                      required:
                        - status
                      type: object
                toolName:
                  $ref: '#/components/schemas/Exclude_ToolName.proposeChange_'
                toolType:
                  type: string
                  enum:
                    - built-in
                  nullable: false
              required:
                - metadata
                - toolName
                - toolType
              type: object
            - properties:
                metadata:
                  allOf:
                    - $ref: '#/components/schemas/Record_string.unknown_'
                  nullable: true
                toolName:
                  $ref: '#/components/schemas/AiAgentMcpToolName'
                toolType:
                  type: string
                  enum:
                    - mcp
                  nullable: false
              required:
                - metadata
                - toolName
                - toolType
              type: object
    AiAgentToolCall:
      allOf:
        - $ref: '#/components/schemas/AiAgentBaseToolCall'
        - anyOf:
            - properties:
                toolName:
                  type: string
                toolType:
                  type: string
                  enum:
                    - built-in
                  nullable: false
              required:
                - toolName
                - toolType
              type: object
            - properties:
                mcpServer:
                  allOf:
                    - $ref: '#/components/schemas/AiAgentToolCallMcpServer'
                  nullable: true
                toolName:
                  $ref: '#/components/schemas/AiAgentMcpToolName'
                toolType:
                  type: string
                  enum:
                    - mcp
                  nullable: false
              required:
                - mcpServer
                - toolName
                - toolType
              type: object
    AiPromptContextItem:
      anyOf:
        - properties:
            chartKind:
              allOf:
                - $ref: '#/components/schemas/ChartKind'
              nullable: true
            runtimeOverrides:
              allOf:
                - $ref: '#/components/schemas/AiChartRuntimeOverrides'
              nullable: true
            displayName:
              type: string
              nullable: true
            pinnedVersionUuid:
              type: string
              nullable: true
            chartSlug:
              type: string
              nullable: true
            chartUuid:
              type: string
            type:
              type: string
              enum:
                - chart
              nullable: false
          required:
            - chartKind
            - runtimeOverrides
            - displayName
            - pinnedVersionUuid
            - chartSlug
            - chartUuid
            - type
          type: object
        - properties:
            displayName:
              type: string
              nullable: true
            pinnedVersionUuid:
              type: string
              nullable: true
            dashboardSlug:
              type: string
              nullable: true
            dashboardUuid:
              type: string
            type:
              type: string
              enum:
                - dashboard
              nullable: false
          required:
            - displayName
            - pinnedVersionUuid
            - dashboardSlug
            - dashboardUuid
            - type
          type: object
        - properties:
            displayName:
              type: string
              nullable: true
            promptUuid:
              type: string
              nullable: true
            threadUuid:
              type: string
            type:
              type: string
              enum:
                - thread
              nullable: false
          required:
            - displayName
            - promptUuid
            - threadUuid
            - type
          type: object
        - properties:
            path:
              type: string
            type:
              type: string
              enum:
                - file
              nullable: false
          required:
            - path
            - type
          type: object
        - properties:
            fullName:
              type: string
            type:
              type: string
              enum:
                - repository
              nullable: false
          required:
            - fullName
            - type
          type: object
        - properties:
            title:
              type: string
              nullable: true
            status:
              allOf:
                - $ref: '#/components/schemas/AiAgentReviewItemPrState'
              nullable: true
            provider:
              allOf:
                - $ref: '#/components/schemas/PullRequestProvider'
              nullable: true
            prNumber:
              type: number
              format: double
              nullable: true
            prUrl:
              type: string
            type:
              type: string
              enum:
                - pull_request
              nullable: false
          required:
            - title
            - status
            - provider
            - prNumber
            - prUrl
            - type
          type: object
        - properties:
            payload:
              $ref: '#/components/schemas/AiPromptProposedChangePayload'
            fingerprint:
              type: string
            type:
              type: string
              enum:
                - proposed_change
              nullable: false
          required:
            - payload
            - fingerprint
            - type
          type: object
        - properties:
            evidenceExcerpts:
              items:
                $ref: '#/components/schemas/AiAgentEvidenceExcerpt'
              type: array
            findingCount:
              type: number
              format: double
            rootCause:
              $ref: '#/components/schemas/AiAgentRootCause'
            title:
              type: string
            fingerprint:
              type: string
            type:
              type: string
              enum:
                - review_finding
              nullable: false
          required:
            - evidenceExcerpts
            - findingCount
            - rootCause
            - title
            - fingerprint
            - type
          type: object
        - properties:
            projectName:
              type: string
              nullable: true
            status:
              allOf:
                - $ref: '#/components/schemas/AiAgentReviewRemediationStatus'
              nullable: true
            previewThreadUuid:
              type: string
              nullable: true
            previewProjectUuid:
              type: string
            type:
              type: string
              enum:
                - preview_environment
              nullable: false
          required:
            - projectName
            - status
            - previewThreadUuid
            - previewProjectUuid
            - type
          type: object
    Pick_AiArtifact.artifactUuid-or-versionNumber-or-versionUuid-or-title-or-description-or-artifactType_:
      properties:
        description:
          type: string
          nullable: true
        artifactUuid:
          type: string
        versionNumber:
          type: number
          format: double
        versionUuid:
          type: string
        title:
          type: string
          nullable: true
        artifactType:
          type: string
          enum:
            - dashboard
            - chart
      required:
        - description
        - artifactUuid
        - versionNumber
        - versionUuid
        - title
        - artifactType
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    AiAgentBaseToolResult:
      properties:
        toolCallId:
          type: string
        createdAt:
          type: string
          format: date-time
        result:
          type: string
        promptUuid:
          type: string
        uuid:
          type: string
      required:
        - toolCallId
        - createdAt
        - result
        - promptUuid
        - uuid
      type: object
    Exclude_ToolName.proposeChange_:
      type: string
      enum:
        - generateDashboard
        - generateVisualization
        - runSql
        - findContent
        - generateBarVizConfig
        - generateTableVizConfig
        - generateTimeSeriesVizConfig
        - generateHashes
        - generateUuids
        - listContent
        - findExplores
        - findFields
        - searchSemanticLayer
        - analyzeFieldImpact
        - discoverFields
        - searchFieldValues
        - findDashboards
        - findCharts
        - getDashboardCharts
        - readContent
        - editContent
        - createContent
        - runContentQuery
        - improveContext
        - listProjects
        - getProjectInfo
        - loadSkill
        - loadProjectContext
        - editDbtProject
        - editProjectContext
        - syncDbtProject
        - exploreRepo
        - discoverRepos
        - setupPreviewDeploy
        - runQuery
        - runSavedChart
        - listWarehouseTables
        - describeWarehouseTable
        - listKnowledgeDocuments
        - getKnowledgeDocumentContent
        - readPinnedThread
      description: Exclude from T those types that are assignable to U
    Record_string.unknown_:
      properties: {}
      additionalProperties: {}
      type: object
      description: Construct a type with a set of properties K of type T
    AiAgentMcpToolName:
      type: string
    AiAgentBaseToolCall:
      properties:
        toolArgs:
          additionalProperties: true
          type: object
        createdAt:
          type: string
          format: date-time
        parentToolCallId:
          type: string
          nullable: true
        toolCallId:
          type: string
        promptUuid:
          type: string
        uuid:
          type: string
      required:
        - toolArgs
        - createdAt
        - parentToolCallId
        - toolCallId
        - promptUuid
        - uuid
      type: object
    AiAgentToolCallMcpServer:
      $ref: '#/components/schemas/Pick_AiMcpServer.uuid-or-name-or-iconUrl_'
    ChartKind:
      enum:
        - line
        - horizontal_bar
        - vertical_bar
        - scatter
        - area
        - mixed
        - pie
        - table
        - big_number
        - funnel
        - custom
        - treemap
        - gauge
        - map
        - sankey
      type: string
    AiChartRuntimeOverrides:
      properties:
        dateZoom:
          $ref: '#/components/schemas/DateZoom'
        dashboardParameters:
          $ref: '#/components/schemas/ParametersValuesMap'
        dashboardFilters:
          $ref: '#/components/schemas/DashboardFilters'
      type: object
      description: >-
        Runtime state captured at pin time for a chart context. When a user pins
        a

        chart from a dashboard view, these are the dashboard-level overrides
        that

        were applied to the chart on screen at that moment.
    AiAgentReviewItemPrState:
      type: string
      enum:
        - open
        - merged
        - closed
    PullRequestProvider:
      enum:
        - github
        - gitlab
      type: string
    AiPromptProposedChangePayload:
      anyOf:
        - properties:
            entry:
              $ref: '#/components/schemas/AiAgentJudgeProjectContextEntry'
            changeKind:
              type: string
              enum:
                - project_context
              nullable: false
          required:
            - entry
            - changeKind
          type: object
        - properties:
            recommendation:
              $ref: '#/components/schemas/AiAgentRecommendation'
            changeKind:
              type: string
              enum:
                - semantic_layer
              nullable: false
          required:
            - recommendation
            - changeKind
          type: object
    AiAgentEvidenceExcerpt:
      properties:
        redacted:
          type: boolean
        text:
          type: string
        source:
          type: string
          enum:
            - user_prompt
            - assistant_answer
            - next_user_prompt
            - conversation_context
            - tool_call
            - tool_result
            - agent_config
      required:
        - redacted
        - text
        - source
      type: object
    AiAgentRootCause:
      type: string
      enum:
        - semantic_layer
        - project_context
        - agent_configuration
        - product_capability
        - runtime_reliability
        - feedback_quality
        - not_a_failure
        - ambiguous
    AiAgentReviewRemediationStatus:
      type: string
      enum:
        - queued
        - running
        - pr_open
        - preview_ready
        - resolved
        - failed
    Pick_AiMcpServer.uuid-or-name-or-iconUrl_:
      properties:
        name:
          type: string
        uuid:
          type: string
        iconUrl:
          type: string
          nullable: true
      required:
        - name
        - uuid
        - iconUrl
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    DateZoom:
      properties:
        xAxisFieldId:
          type: string
        granularity:
          anyOf:
            - $ref: '#/components/schemas/DateGranularity'
            - type: string
      type: object
    ParametersValuesMap:
      $ref: '#/components/schemas/Record_string.ParameterValue_'
    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
    AiAgentJudgeProjectContextEntry:
      properties:
        objects:
          items:
            type: string
          type: array
        terms:
          items:
            type: string
          type: array
        content:
          type: string
        kind:
          type: string
          enum:
            - definition
            - context
        id:
          type: string
          nullable: true
        op:
          type: string
          enum:
            - create
            - update
      required:
        - objects
        - terms
        - content
        - kind
        - id
        - op
      type: object
    AiAgentRecommendation:
      properties:
        targetRefs:
          items:
            $ref: '#/components/schemas/AiAgentTargetRef'
          type: array
        rationale:
          type: string
        title:
          type: string
        actionType:
          $ref: '#/components/schemas/AiAgentRecommendationAction'
      required:
        - targetRefs
        - rationale
        - title
        - actionType
      type: object
    DateGranularity:
      enum:
        - Second
        - Minute
        - Hour
        - Day
        - Week
        - Month
        - Quarter
        - Year
      type: string
    Record_string.ParameterValue_:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/ParameterValue'
      type: object
      description: Construct a type with a set of properties K of type T
    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
    AiAgentTargetRef:
      anyOf:
        - $ref: '#/components/schemas/AiAgentSemanticTargetRef'
        - properties:
            agentUuid:
              type: string
            type:
              type: string
              enum:
                - agent
              nullable: false
          required:
            - agentUuid
            - type
          type: object
        - properties:
            setting:
              $ref: '#/components/schemas/AiAgentConfigurationSetting'
            type:
              type: string
              enum:
                - agent_config
              nullable: false
          required:
            - setting
            - type
          type: object
        - properties:
            capabilityKey:
              type: string
            type:
              type: string
              enum:
                - product_capability
              nullable: false
          required:
            - capabilityKey
            - type
          type: object
        - properties:
            key:
              type: string
            type:
              type: string
              enum:
                - runtime
              nullable: false
          required:
            - key
            - type
          type: object
    AiAgentRecommendationAction:
      type: string
      enum:
        - update_semantic_yaml
        - update_agent_instructions
        - add_knowledge_document
        - enable_data_access
        - enable_sql_mode
        - enable_self_improvement
        - configure_mcp_server
        - adjust_explore_tags
        - update_access
        - route_to_product_work
        - request_more_evidence
        - no_action
    ParameterValue:
      anyOf:
        - type: string
        - type: number
          format: double
        - items:
            type: string
          type: array
        - items:
            type: number
            format: double
          type: array
    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
    AiAgentSemanticTargetRef:
      anyOf:
        - properties:
            modelName:
              type: string
            type:
              type: string
              enum:
                - model
              nullable: false
          required:
            - modelName
            - type
          type: object
        - properties:
            exploreName:
              type: string
            modelName:
              type: string
            type:
              type: string
              enum:
                - explore
              nullable: false
          required:
            - exploreName
            - modelName
            - type
          type: object
        - properties:
            exploreName:
              type: string
            joinName:
              type: string
            modelName:
              type: string
            type:
              type: string
              enum:
                - join
              nullable: false
          required:
            - joinName
            - modelName
            - type
          type: object
        - properties:
            dimensionName:
              type: string
            modelName:
              type: string
            type:
              type: string
              enum:
                - dimension
              nullable: false
          required:
            - dimensionName
            - modelName
            - type
          type: object
        - properties:
            dimensionName:
              type: string
            metricName:
              type: string
            modelName:
              type: string
            type:
              type: string
              enum:
                - metric
              nullable: false
          required:
            - metricName
            - modelName
            - type
          type: object
        - properties:
            dimensionName:
              type: string
            parentDimensionName:
              type: string
            modelName:
              type: string
            type:
              type: string
              enum:
                - additional_dimension
              nullable: false
          required:
            - dimensionName
            - parentDimensionName
            - modelName
            - type
          type: object
        - properties:
            fieldName:
              type: string
            exploreName:
              type: string
            modelName:
              type: string
            type:
              type: string
              enum:
                - required_filter
              nullable: false
          required:
            - fieldName
            - exploreName
            - modelName
            - type
          type: object
        - properties:
            targetName:
              type: string
            targetType:
              type: string
              enum:
                - model
                - dimension
                - metric
            modelName:
              type: string
            type:
              type: string
              enum:
                - ai_hint
              nullable: false
          required:
            - targetName
            - targetType
            - modelName
            - type
          type: object
    AiAgentConfigurationSetting:
      type: string
      enum:
        - instructions
        - knowledge_documents
        - data_access
        - self_improvement
        - sql_mode
        - mcp_servers
        - explore_tags
        - space_access
        - user_or_group_access
        - unknown
    FilterOperator:
      enum:
        - isNull
        - notNull
        - equals
        - notEquals
        - startsWith
        - endsWith
        - include
        - doesNotInclude
        - lessThan
        - lessThanOrEqual
        - greaterThan
        - greaterThanOrEqual
        - inThePast
        - notInThePast
        - inTheNext
        - inTheCurrent
        - notInTheCurrent
        - inBetween
        - notInBetween
        - inPeriodToDate
      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
    DimensionType:
      enum:
        - string
        - number
        - timestamp
        - date
        - boolean
      type: string

````