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

# Test warehouse connection

> Tests warehouse credentials without saving them. Reports each SSH tunnel hop and the database login separately so a broken bastion setup points at the step to fix.



## OpenAPI

````yaml https://raw.githubusercontent.com/lightdash/lightdash/refs/heads/main/packages/backend/src/generated/swagger.json post /api/v1/projects/{projectUuid}/warehouse/test
openapi: 3.0.0
info:
  title: Lightdash API
  version: 2.180.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}/warehouse/test:
    post:
      tags:
        - Projects
      summary: Test warehouse connection
      description: >-
        Tests warehouse credentials without saving them. Reports each SSH tunnel
        hop and the database login separately so a broken bastion setup points
        at the step to fix.
      operationId: testWarehouseConnection
      parameters:
        - in: path
          name: projectUuid
          required: true
          schema:
            $ref: '#/components/schemas/UUID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiWarehouseConnectionTestBody'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiWarehouseConnectionTestResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
components:
  schemas:
    UUID:
      type: string
      format: uuid
      description: |-
        Stringified UUIDv4.
        See [RFC 4112](https://tools.ietf.org/html/rfc4122)
      pattern: >-
        [0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}
    ApiWarehouseConnectionTestBody:
      properties:
        warehouseConnection:
          anyOf:
            - $ref: '#/components/schemas/CreateRedshiftCredentials'
            - $ref: '#/components/schemas/CreateBigqueryCredentials'
            - $ref: '#/components/schemas/CreatePostgresCredentials'
            - $ref: '#/components/schemas/CreateSnowflakeCredentials'
            - $ref: '#/components/schemas/CreateDatabricksCredentials'
            - $ref: '#/components/schemas/CreateTrinoCredentials'
            - $ref: '#/components/schemas/CreateClickhouseCredentials'
            - $ref: '#/components/schemas/CreateAthenaCredentials'
            - $ref: '#/components/schemas/CreateDuckdbCredentials'
            - $ref: >-
                #/components/schemas/CreateWarehouseCredentialsWithOptionalSecrets
      required:
        - warehouseConnection
      type: object
    ApiWarehouseConnectionTestResponse:
      properties:
        results:
          $ref: '#/components/schemas/WarehouseConnectionTestResults'
        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
    CreateRedshiftCredentials:
      allOf:
        - $ref: '#/components/schemas/SshTunnelConfiguration'
        - properties:
            awsSsoRoleName:
              type: string
            awsSsoAccountId:
              type: string
            awsSsoRegion:
              type: string
            awsSsoStartUrl:
              type: string
            assumeRoleExternalId:
              type: string
            assumeRoleArn:
              type: string
            sessionToken:
              type: string
            secretAccessKey:
              type: string
            accessKeyId:
              type: string
            dbGroups:
              items:
                type: string
              type: array
            autoCreate:
              type: boolean
            workgroupName:
              type: string
            clusterIdentifier:
              type: string
            isServerless:
              type: boolean
            region:
              type: string
            authenticationType:
              $ref: '#/components/schemas/RedshiftAuthenticationType'
            timeoutSeconds:
              type: number
              format: double
            dataTimezone:
              type: string
            startOfWeek:
              allOf:
                - $ref: '#/components/schemas/WeekDay'
              nullable: true
            ra3Node:
              type: boolean
            sslmode:
              type: string
            keepalivesIdle:
              type: number
              format: double
            threads:
              type: number
              format: double
            schema:
              type: string
            dbname:
              type: string
            port:
              type: number
              format: double
            requireUserCredentials:
              type: boolean
            password:
              type: string
            user:
              type: string
            host:
              type: string
            type:
              $ref: '#/components/schemas/WarehouseTypes.REDSHIFT'
          required:
            - schema
            - dbname
            - port
            - user
            - host
            - type
          type: object
    CreateBigqueryCredentials:
      properties:
        accessUrl:
          type: string
        executionProject:
          type: string
        dataTimezone:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        maximumBytesBilled:
          type: number
          format: double
        location:
          type: string
        retries:
          type: number
          format: double
        requireUserCredentials:
          type: boolean
        keyfileContents:
          properties: {}
          additionalProperties:
            type: string
          type: object
        authenticationType:
          $ref: '#/components/schemas/BigqueryAuthenticationType'
        priority:
          type: string
          enum:
            - interactive
            - batch
        timeoutSeconds:
          type: number
          format: double
        threads:
          type: number
          format: double
        dataset:
          type: string
        project:
          type: string
        type:
          $ref: '#/components/schemas/WarehouseTypes.BIGQUERY'
      required:
        - keyfileContents
        - dataset
        - project
        - type
      type: object
    CreatePostgresCredentials:
      allOf:
        - $ref: '#/components/schemas/SshTunnelConfiguration'
        - $ref: '#/components/schemas/SslConfiguration'
        - properties:
            timeoutSeconds:
              type: number
              format: double
            dataTimezone:
              type: string
            startOfWeek:
              allOf:
                - $ref: '#/components/schemas/WeekDay'
              nullable: true
            role:
              type: string
            searchPath:
              type: string
            keepalivesIdle:
              type: number
              format: double
            threads:
              type: number
              format: double
            schema:
              type: string
            dbname:
              type: string
            port:
              type: number
              format: double
            requireUserCredentials:
              type: boolean
            password:
              type: string
            user:
              type: string
            host:
              type: string
            type:
              $ref: '#/components/schemas/WarehouseTypes.POSTGRES'
          required:
            - schema
            - dbname
            - port
            - password
            - user
            - host
            - type
          type: object
    CreateSnowflakeCredentials:
      properties:
        organizationWarehouseCredentialsUuid:
          type: string
        override:
          type: boolean
        timeoutSeconds:
          type: number
          format: double
        disableTimestampConversion:
          type: boolean
        quotedIdentifiersIgnoreCase:
          type: boolean
        dataTimezone:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        accessUrl:
          type: string
        queryTag:
          type: string
        clientSessionKeepAlive:
          type: boolean
        threads:
          type: number
          format: double
        schema:
          type: string
        warehouse:
          type: string
        database:
          type: string
        role:
          type: string
        token:
          type: string
        refreshToken:
          type: string
        authenticationType:
          $ref: '#/components/schemas/SnowflakeAuthenticationType'
        privateKeyPass:
          type: string
        privateKey:
          type: string
        requireUserCredentials:
          type: boolean
        password:
          type: string
        user:
          type: string
        account:
          type: string
        type:
          $ref: '#/components/schemas/WarehouseTypes.SNOWFLAKE'
      required:
        - schema
        - warehouse
        - database
        - user
        - account
        - type
      type: object
    CreateDatabricksCredentials:
      properties:
        compute:
          items:
            properties:
              httpPath:
                type: string
              name:
                type: string
            required:
              - httpPath
              - name
            type: object
          type: array
        dataTimezone:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        requireUserCredentials:
          type: boolean
        oauthClientSecret:
          type: string
        oauthClientId:
          type: string
        token:
          type: string
        refreshToken:
          type: string
        personalAccessToken:
          type: string
        authenticationType:
          $ref: '#/components/schemas/DatabricksAuthenticationType'
        httpPath:
          type: string
        serverHostName:
          type: string
        database:
          type: string
        catalog:
          type: string
        type:
          $ref: '#/components/schemas/WarehouseTypes.DATABRICKS'
      required:
        - httpPath
        - serverHostName
        - database
        - type
      type: object
    CreateTrinoCredentials:
      properties:
        dataTimezone:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        source:
          type: string
        http_scheme:
          type: string
        schema:
          type: string
        dbname:
          type: string
        port:
          type: number
          format: double
        requireUserCredentials:
          type: boolean
        password:
          type: string
        user:
          type: string
        host:
          type: string
        type:
          $ref: '#/components/schemas/WarehouseTypes.TRINO'
      required:
        - http_scheme
        - schema
        - dbname
        - port
        - password
        - user
        - host
        - type
      type: object
    CreateClickhouseCredentials:
      properties:
        timeoutSeconds:
          type: number
          format: double
        dataTimezone:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        secure:
          type: boolean
        schema:
          type: string
        port:
          type: number
          format: double
        requireUserCredentials:
          type: boolean
        password:
          type: string
        user:
          type: string
        host:
          type: string
        type:
          $ref: '#/components/schemas/WarehouseTypes.CLICKHOUSE'
      required:
        - schema
        - port
        - password
        - user
        - host
        - type
      type: object
    CreateAthenaCredentials:
      properties:
        dataTimezone:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        requireUserCredentials:
          type: boolean
        numRetries:
          type: number
          format: double
        threads:
          type: number
          format: double
        workGroup:
          type: string
        assumeRoleExternalId:
          type: string
        assumeRoleArn:
          type: string
        sessionToken:
          type: string
        secretAccessKey:
          type: string
        accessKeyId:
          type: string
        authenticationType:
          $ref: '#/components/schemas/AthenaAuthenticationType'
        s3DataDir:
          type: string
        s3StagingDir:
          type: string
        schema:
          type: string
        database:
          type: string
        region:
          type: string
        type:
          $ref: '#/components/schemas/WarehouseTypes.ATHENA'
      required:
        - s3StagingDir
        - schema
        - database
        - region
        - type
      type: object
    CreateDuckdbCredentials:
      anyOf:
        - $ref: '#/components/schemas/CreateDuckdbMotherduckCredentials'
        - $ref: '#/components/schemas/CreateDuckdbDucklakeCredentials'
        - $ref: '#/components/schemas/CreateDuckdbEmbeddedCredentials'
        - $ref: '#/components/schemas/DuckdbAnalyticsCredentials'
    CreateWarehouseCredentialsWithOptionalSecrets:
      anyOf:
        - $ref: '#/components/schemas/WithOptionalSecrets_CreateRedshiftCredentials_'
        - $ref: '#/components/schemas/WithOptionalSecrets_CreateBigqueryCredentials_'
        - $ref: '#/components/schemas/WithOptionalSecrets_CreatePostgresCredentials_'
        - $ref: '#/components/schemas/WithOptionalSecrets_CreateSnowflakeCredentials_'
        - $ref: >-
            #/components/schemas/WithOptionalSecrets_CreateDatabricksCredentials_
        - $ref: '#/components/schemas/WithOptionalSecrets_CreateTrinoCredentials_'
        - $ref: >-
            #/components/schemas/WithOptionalSecrets_CreateClickhouseCredentials_
        - $ref: '#/components/schemas/WithOptionalSecrets_CreateAthenaCredentials_'
        - $ref: >-
            #/components/schemas/WithOptionalSecrets_CreateDuckdbMotherduckCredentials_
        - $ref: >-
            #/components/schemas/WithOptionalSecrets_CreateDuckdbDucklakeCredentials_
        - $ref: >-
            #/components/schemas/WithOptionalSecrets_CreateDuckdbEmbeddedCredentials_
        - $ref: '#/components/schemas/WithOptionalSecrets_DuckdbAnalyticsCredentials_'
    WarehouseConnectionTestResults:
      properties:
        hops:
          items:
            $ref: '#/components/schemas/WarehouseConnectionHop'
          type: array
        ok:
          type: boolean
      required:
        - hops
        - ok
      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.
    SshTunnelConfiguration:
      properties:
        sshTunnelPrivateKey:
          type: string
        sshTunnelPublicKey:
          type: string
        sshTunnelUser:
          type: string
        sshTunnelPort:
          type: number
          format: double
        sshTunnelHost:
          type: string
        useSshTunnel:
          type: boolean
      type: object
    RedshiftAuthenticationType:
      enum:
        - password
        - iam
        - iam_browser
      type: string
    WeekDay:
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
      type: number
    WarehouseTypes.REDSHIFT:
      enum:
        - redshift
      type: string
    BigqueryAuthenticationType:
      enum:
        - sso
        - private_key
        - adc
      type: string
    WarehouseTypes.BIGQUERY:
      enum:
        - bigquery
      type: string
    SslConfiguration:
      properties:
        sslrootcert:
          type: string
          nullable: true
        sslrootcertFileName:
          type: string
        sslkey:
          type: string
          nullable: true
        sslkeyFileName:
          type: string
        sslcert:
          type: string
          nullable: true
        sslcertFileName:
          type: string
        sslmode:
          type: string
      type: object
    WarehouseTypes.POSTGRES:
      enum:
        - postgres
      type: string
    SnowflakeAuthenticationType:
      enum:
        - password
        - private_key
        - sso
        - external_browser
        - oauth_authorization_code
        - none
      type: string
    WarehouseTypes.SNOWFLAKE:
      enum:
        - snowflake
      type: string
    DatabricksAuthenticationType:
      enum:
        - personal_access_token
        - oauth_m2m
        - oauth_u2m
      type: string
    WarehouseTypes.DATABRICKS:
      enum:
        - databricks
      type: string
    WarehouseTypes.TRINO:
      enum:
        - trino
      type: string
    WarehouseTypes.CLICKHOUSE:
      enum:
        - clickhouse
      type: string
    AthenaAuthenticationType:
      enum:
        - access_key
        - iam_role
      type: string
    WarehouseTypes.ATHENA:
      enum:
        - athena
      type: string
    CreateDuckdbMotherduckCredentials:
      properties:
        dataTimezone:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        requireUserCredentials:
          type: boolean
        threads:
          type: number
          format: double
        token:
          type: string
        schema:
          type: string
        database:
          type: string
        connectionType:
          $ref: '#/components/schemas/DuckdbConnectionType.MOTHERDUCK'
        type:
          $ref: '#/components/schemas/WarehouseTypes.DUCKDB'
      required:
        - token
        - schema
        - database
        - connectionType
        - type
      type: object
    CreateDuckdbDucklakeCredentials:
      properties:
        dataTimezone:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        requireUserCredentials:
          type: boolean
        threads:
          type: number
          format: double
        catalogAlias:
          type: string
        schema:
          type: string
        dataPath:
          $ref: '#/components/schemas/CreateDucklakeDataPath'
        catalog:
          $ref: '#/components/schemas/CreateDucklakeCatalog'
        connectionType:
          $ref: '#/components/schemas/DuckdbConnectionType.DUCKLAKE'
        type:
          $ref: '#/components/schemas/WarehouseTypes.DUCKDB'
      required:
        - schema
        - dataPath
        - catalog
        - connectionType
        - type
      type: object
    CreateDuckdbEmbeddedCredentials:
      properties:
        schema:
          type: string
        startOfWeek:
          type: number
          format: double
        dataTimezone:
          type: string
        requireUserCredentials:
          type: boolean
        dataset:
          type: string
        connectionType:
          $ref: '#/components/schemas/DuckdbConnectionType.EMBEDDED'
        type:
          $ref: '#/components/schemas/WarehouseTypes.DUCKDB'
      required:
        - dataset
        - connectionType
        - type
      type: object
    DuckdbAnalyticsCredentials:
      properties:
        startOfWeek:
          type: number
          format: double
        dataTimezone:
          type: string
        requireUserCredentials:
          type: boolean
          enum:
            - false
          nullable: false
        schema:
          type: string
          enum:
            - main
          nullable: false
        database:
          type: string
          enum:
            - memory
          nullable: false
        connectionType:
          $ref: '#/components/schemas/DuckdbConnectionType.ANALYTICS'
        type:
          $ref: '#/components/schemas/WarehouseTypes.DUCKDB'
      required:
        - schema
        - database
        - connectionType
        - type
      type: object
      description: >-
        An identifier only: storage locations and credentials belong to the
        backend.
    WithOptionalSecrets_CreateRedshiftCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreateRedshiftCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreateRedshiftCredentials_'
    WithOptionalSecrets_CreateBigqueryCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreateBigqueryCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreateBigqueryCredentials_'
    WithOptionalSecrets_CreatePostgresCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreatePostgresCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreatePostgresCredentials_'
    WithOptionalSecrets_CreateSnowflakeCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreateSnowflakeCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreateSnowflakeCredentials_'
    WithOptionalSecrets_CreateDatabricksCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreateDatabricksCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreateDatabricksCredentials_'
    WithOptionalSecrets_CreateTrinoCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreateTrinoCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreateTrinoCredentials_'
    WithOptionalSecrets_CreateClickhouseCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreateClickhouseCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreateClickhouseCredentials_'
    WithOptionalSecrets_CreateAthenaCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreateAthenaCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreateAthenaCredentials_'
    WithOptionalSecrets_CreateDuckdbMotherduckCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreateDuckdbMotherduckCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreateDuckdbMotherduckCredentials_'
    WithOptionalSecrets_CreateDuckdbDucklakeCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreateDuckdbDucklakeCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreateDuckdbDucklakeCredentials_'
    WithOptionalSecrets_CreateDuckdbEmbeddedCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_CreateDuckdbEmbeddedCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_CreateDuckdbEmbeddedCredentials_'
    WithOptionalSecrets_DuckdbAnalyticsCredentials_:
      allOf:
        - $ref: >-
            #/components/schemas/Omit_DuckdbAnalyticsCredentials.SensitiveCredentialsFieldNames_
        - $ref: '#/components/schemas/Partial_DuckdbAnalyticsCredentials_'
    WarehouseConnectionHop:
      properties:
        message:
          type: string
          nullable: true
        status:
          $ref: '#/components/schemas/WarehouseConnectionHopStatus'
        stage:
          $ref: '#/components/schemas/WarehouseConnectionHopStage'
      required:
        - message
        - status
        - stage
      type: object
    DuckdbConnectionType.MOTHERDUCK:
      enum:
        - motherduck
      type: string
    WarehouseTypes.DUCKDB:
      enum:
        - duckdb
      type: string
    CreateDucklakeDataPath:
      anyOf:
        - $ref: '#/components/schemas/CreateDucklakeDataPathS3'
        - $ref: '#/components/schemas/CreateDucklakeDataPathGcs'
        - $ref: '#/components/schemas/CreateDucklakeDataPathAzure'
        - $ref: '#/components/schemas/CreateDucklakeDataPathLocal'
    CreateDucklakeCatalog:
      anyOf:
        - $ref: '#/components/schemas/CreateDucklakeCatalogPostgres'
        - $ref: '#/components/schemas/CreateDucklakeCatalogSqlite'
        - $ref: '#/components/schemas/CreateDucklakeCatalogDuckdb'
    DuckdbConnectionType.DUCKLAKE:
      enum:
        - ducklake
      type: string
    DuckdbConnectionType.EMBEDDED:
      enum:
        - embedded
      type: string
    DuckdbConnectionType.ANALYTICS:
      enum:
        - analytics
      type: string
    Omit_CreateRedshiftCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreateRedshiftCredentials.Exclude_keyofCreateRedshiftCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreateRedshiftCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_CreateBigqueryCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreateBigqueryCredentials.Exclude_keyofCreateBigqueryCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreateBigqueryCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_CreatePostgresCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreatePostgresCredentials.Exclude_keyofCreatePostgresCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreatePostgresCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_CreateSnowflakeCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreateSnowflakeCredentials.Exclude_keyofCreateSnowflakeCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreateSnowflakeCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_CreateDatabricksCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreateDatabricksCredentials.Exclude_keyofCreateDatabricksCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreateDatabricksCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_CreateTrinoCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreateTrinoCredentials.Exclude_keyofCreateTrinoCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreateTrinoCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_CreateClickhouseCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreateClickhouseCredentials.Exclude_keyofCreateClickhouseCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreateClickhouseCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_CreateAthenaCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreateAthenaCredentials.Exclude_keyofCreateAthenaCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreateAthenaCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_CreateDuckdbMotherduckCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreateDuckdbMotherduckCredentials.Exclude_keyofCreateDuckdbMotherduckCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreateDuckdbMotherduckCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_CreateDuckdbDucklakeCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreateDuckdbDucklakeCredentials.Exclude_keyofCreateDuckdbDucklakeCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreateDuckdbDucklakeCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_CreateDuckdbEmbeddedCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_CreateDuckdbEmbeddedCredentials.Exclude_keyofCreateDuckdbEmbeddedCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_CreateDuckdbEmbeddedCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    Omit_DuckdbAnalyticsCredentials.SensitiveCredentialsFieldNames_:
      $ref: >-
        #/components/schemas/Pick_DuckdbAnalyticsCredentials.Exclude_keyofDuckdbAnalyticsCredentials.SensitiveCredentialsFieldNames__
      description: Construct a type with the properties of T except for those in type K.
    Partial_DuckdbAnalyticsCredentials_:
      properties: {}
      type: object
      description: Make all properties in T optional
    WarehouseConnectionHopStatus:
      type: string
      enum:
        - ok
        - failed
        - skipped
    WarehouseConnectionHopStage:
      anyOf:
        - $ref: '#/components/schemas/SshTunnelStage'
        - type: string
          enum:
            - database
    CreateDucklakeDataPathS3:
      properties:
        useSsl:
          type: boolean
        forcePathStyle:
          type: boolean
        secretAccessKey:
          type: string
        accessKeyId:
          type: string
        region:
          type: string
        endpoint:
          type: string
        url:
          type: string
        type:
          $ref: '#/components/schemas/DucklakeDataPathType.S3'
      required:
        - url
        - type
      type: object
    CreateDucklakeDataPathGcs:
      properties:
        hmacSecret:
          type: string
        hmacKeyId:
          type: string
        url:
          type: string
        type:
          $ref: '#/components/schemas/DucklakeDataPathType.GCS'
      required:
        - url
        - type
      type: object
    CreateDucklakeDataPathAzure:
      properties:
        accountKey:
          type: string
        accountName:
          type: string
        connectionString:
          type: string
        url:
          type: string
        type:
          $ref: '#/components/schemas/DucklakeDataPathType.AZURE'
      required:
        - url
        - type
      type: object
    CreateDucklakeDataPathLocal:
      properties:
        path:
          type: string
        type:
          $ref: '#/components/schemas/DucklakeDataPathType.LOCAL'
      required:
        - path
        - type
      type: object
    CreateDucklakeCatalogPostgres:
      properties:
        password:
          type: string
        user:
          type: string
        database:
          type: string
        port:
          type: number
          format: double
        host:
          type: string
        type:
          $ref: '#/components/schemas/DucklakeCatalogType.POSTGRES'
      required:
        - password
        - user
        - database
        - port
        - host
        - type
      type: object
    CreateDucklakeCatalogSqlite:
      properties:
        path:
          type: string
        type:
          $ref: '#/components/schemas/DucklakeCatalogType.SQLITE'
      required:
        - path
        - type
      type: object
    CreateDucklakeCatalogDuckdb:
      properties:
        path:
          type: string
        type:
          $ref: '#/components/schemas/DucklakeCatalogType.DUCKDB'
      required:
        - path
        - type
      type: object
    Pick_CreateRedshiftCredentials.Exclude_keyofCreateRedshiftCredentials.SensitiveCredentialsFieldNames__:
      properties:
        type:
          $ref: '#/components/schemas/WarehouseTypes.REDSHIFT'
        requireUserCredentials:
          type: boolean
        authenticationType:
          $ref: '#/components/schemas/RedshiftAuthenticationType'
        schema:
          type: string
        threads:
          type: number
          format: double
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        dataTimezone:
          type: string
        timeoutSeconds:
          type: number
          format: double
        useSshTunnel:
          type: boolean
        sshTunnelHost:
          type: string
        sshTunnelPort:
          type: number
          format: double
        sshTunnelUser:
          type: string
        sshTunnelPublicKey:
          type: string
        host:
          type: string
        port:
          type: number
          format: double
        dbname:
          type: string
        keepalivesIdle:
          type: number
          format: double
        sslmode:
          type: string
        ra3Node:
          type: boolean
        region:
          type: string
        isServerless:
          type: boolean
        clusterIdentifier:
          type: string
        workgroupName:
          type: string
        autoCreate:
          type: boolean
        dbGroups:
          items:
            type: string
          type: array
        assumeRoleArn:
          type: string
        assumeRoleExternalId:
          type: string
        awsSsoStartUrl:
          type: string
        awsSsoRegion:
          type: string
        awsSsoAccountId:
          type: string
        awsSsoRoleName:
          type: string
      required:
        - type
        - schema
        - host
        - port
        - dbname
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_CreateBigqueryCredentials.Exclude_keyofCreateBigqueryCredentials.SensitiveCredentialsFieldNames__:
      properties:
        type:
          $ref: '#/components/schemas/WarehouseTypes.BIGQUERY'
        project:
          type: string
        requireUserCredentials:
          type: boolean
        authenticationType:
          $ref: '#/components/schemas/BigqueryAuthenticationType'
        threads:
          type: number
          format: double
        accessUrl:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        dataTimezone:
          type: string
        timeoutSeconds:
          type: number
          format: double
        dataset:
          type: string
        priority:
          type: string
          enum:
            - interactive
            - batch
        retries:
          type: number
          format: double
        location:
          type: string
        maximumBytesBilled:
          type: number
          format: double
        executionProject:
          type: string
      required:
        - type
        - project
        - dataset
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_CreatePostgresCredentials.Exclude_keyofCreatePostgresCredentials.SensitiveCredentialsFieldNames__:
      properties:
        type:
          $ref: '#/components/schemas/WarehouseTypes.POSTGRES'
        requireUserCredentials:
          type: boolean
        role:
          type: string
        schema:
          type: string
        threads:
          type: number
          format: double
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        dataTimezone:
          type: string
        timeoutSeconds:
          type: number
          format: double
        useSshTunnel:
          type: boolean
        sshTunnelHost:
          type: string
        sshTunnelPort:
          type: number
          format: double
        sshTunnelUser:
          type: string
        sshTunnelPublicKey:
          type: string
        host:
          type: string
        port:
          type: number
          format: double
        dbname:
          type: string
        keepalivesIdle:
          type: number
          format: double
        sslmode:
          type: string
        sslcertFileName:
          type: string
        sslkeyFileName:
          type: string
        sslrootcertFileName:
          type: string
        searchPath:
          type: string
      required:
        - type
        - schema
        - host
        - port
        - dbname
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_CreateSnowflakeCredentials.Exclude_keyofCreateSnowflakeCredentials.SensitiveCredentialsFieldNames__:
      properties:
        type:
          $ref: '#/components/schemas/WarehouseTypes.SNOWFLAKE'
        account:
          type: string
        requireUserCredentials:
          type: boolean
        authenticationType:
          $ref: '#/components/schemas/SnowflakeAuthenticationType'
        role:
          type: string
        database:
          type: string
        warehouse:
          type: string
        schema:
          type: string
        threads:
          type: number
          format: double
        clientSessionKeepAlive:
          type: boolean
        queryTag:
          type: string
        accessUrl:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        dataTimezone:
          type: string
        quotedIdentifiersIgnoreCase:
          type: boolean
        disableTimestampConversion:
          type: boolean
        timeoutSeconds:
          type: number
          format: double
        override:
          type: boolean
        organizationWarehouseCredentialsUuid:
          type: string
      required:
        - type
        - account
        - database
        - warehouse
        - schema
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_CreateDatabricksCredentials.Exclude_keyofCreateDatabricksCredentials.SensitiveCredentialsFieldNames__:
      properties:
        type:
          $ref: '#/components/schemas/WarehouseTypes.DATABRICKS'
        catalog:
          type: string
        requireUserCredentials:
          type: boolean
        authenticationType:
          $ref: '#/components/schemas/DatabricksAuthenticationType'
        database:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        dataTimezone:
          type: string
        serverHostName:
          type: string
        httpPath:
          type: string
        compute:
          items:
            properties:
              httpPath:
                type: string
              name:
                type: string
            required:
              - httpPath
              - name
            type: object
          type: array
      required:
        - type
        - database
        - serverHostName
        - httpPath
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_CreateTrinoCredentials.Exclude_keyofCreateTrinoCredentials.SensitiveCredentialsFieldNames__:
      properties:
        type:
          $ref: '#/components/schemas/WarehouseTypes.TRINO'
        requireUserCredentials:
          type: boolean
        schema:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        dataTimezone:
          type: string
        host:
          type: string
        port:
          type: number
          format: double
        dbname:
          type: string
        http_scheme:
          type: string
        source:
          type: string
      required:
        - type
        - schema
        - host
        - port
        - dbname
        - http_scheme
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_CreateClickhouseCredentials.Exclude_keyofCreateClickhouseCredentials.SensitiveCredentialsFieldNames__:
      properties:
        type:
          $ref: '#/components/schemas/WarehouseTypes.CLICKHOUSE'
        requireUserCredentials:
          type: boolean
        schema:
          type: string
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        dataTimezone:
          type: string
        timeoutSeconds:
          type: number
          format: double
        host:
          type: string
        port:
          type: number
          format: double
        secure:
          type: boolean
      required:
        - type
        - schema
        - host
        - port
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_CreateAthenaCredentials.Exclude_keyofCreateAthenaCredentials.SensitiveCredentialsFieldNames__:
      properties:
        type:
          $ref: '#/components/schemas/WarehouseTypes.ATHENA'
        requireUserCredentials:
          type: boolean
        authenticationType:
          $ref: '#/components/schemas/AthenaAuthenticationType'
        database:
          type: string
        schema:
          type: string
        threads:
          type: number
          format: double
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        dataTimezone:
          type: string
        region:
          type: string
        assumeRoleArn:
          type: string
        assumeRoleExternalId:
          type: string
        s3StagingDir:
          type: string
        s3DataDir:
          type: string
        workGroup:
          type: string
        numRetries:
          type: number
          format: double
      required:
        - type
        - database
        - schema
        - region
        - s3StagingDir
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_CreateDuckdbMotherduckCredentials.Exclude_keyofCreateDuckdbMotherduckCredentials.SensitiveCredentialsFieldNames__:
      properties:
        type:
          $ref: '#/components/schemas/WarehouseTypes.DUCKDB'
        requireUserCredentials:
          type: boolean
        database:
          type: string
        schema:
          type: string
        threads:
          type: number
          format: double
        startOfWeek:
          allOf:
            - $ref: '#/components/schemas/WeekDay'
          nullable: true
        dataTimezone:
          type: string
        connectionType:
          $ref: '#/components/schemas/DuckdbConnectionType.MOTHERDUCK'
      required:
        - type
        - database
        - schema
        - connectionType
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_CreateDuckdbDucklakeCredentials.Exclude_keyofCreateDuckdbDucklakeCredentials.SensitiveCredentialsFieldNames__:
      properties: {}
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_CreateDuckdbEmbeddedCredentials.Exclude_keyofCreateDuckdbEmbeddedCredentials.SensitiveCredentialsFieldNames__:
      properties: {}
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_DuckdbAnalyticsCredentials.Exclude_keyofDuckdbAnalyticsCredentials.SensitiveCredentialsFieldNames__:
      properties: {}
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    SshTunnelStage:
      type: string
      enum:
        - resolve
        - tcp
        - handshake
        - auth
        - forward
    DucklakeDataPathType.S3:
      enum:
        - s3
      type: string
    DucklakeDataPathType.GCS:
      enum:
        - gcs
      type: string
    DucklakeDataPathType.AZURE:
      enum:
        - azure
      type: string
    DucklakeDataPathType.LOCAL:
      enum:
        - local
      type: string
    DucklakeCatalogType.POSTGRES:
      enum:
        - postgres
      type: string
    DucklakeCatalogType.SQLITE:
      enum:
        - sqlite
      type: string
    DucklakeCatalogType.DUCKDB:
      enum:
        - duckdb
      type: string

````