> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prequel.co/llms.txt
> Use this file to discover all available pages before exploring further.

# List destinations

> The Destination endpoint returns the configured data destinations. Destinations are the databases and data warehouses within the consumer environments.



## OpenAPI

````yaml /generated/openapi-generated-2023-12-01.json get /destinations
openapi: 3.1.0
info:
  title: Prequel Data Export
  description: Data Export API spec
  version: '2023-12-01'
servers:
  - url: https://api.prequel.co
    description: Cloud-hosted server (US)
  - url: https://eu-api.prequel.co
    description: Cloud-hosted server (EU)
  - url: https://{custom_host}/
    description: Cloud-prem or shared-cloud server
security:
  - ApiKeyAuth: []
paths:
  /destinations:
    get:
      tags:
        - Destinations
      summary: List destinations
      description: >-
        The Destination endpoint returns the configured data destinations.
        Destinations are the databases and data warehouses within the consumer
        environments.
      operationId: list-destinations
      parameters:
        - name: destination_id
          in: query
          required: false
          description: >-
            Destination ID. Multiple IDs can also be provided as a
            comma-separated string.
          schema:
            type: string
        - name: name
          in: query
          required: false
          description: >-
            Destination name. Case-insensitive. Multiple values can be provided
            as a comma-separated string.
          schema:
            type: string
        - name: vendor
          in: query
          required: false
          description: Filter by vendor type (postgres, redshift).
          schema:
            type: string
        - name: is_enabled
          in: query
          required: false
          description: Filter by enabled status (true or false).
          schema:
            type: string
        - name: recipient_id
          in: query
          required: false
          description: >-
            Recipient ID. Multiple values can be provided as a comma-separated
            string.
          schema:
            type: string
        - name: id_in_provider_system
          in: query
          required: false
          description: >-
            Id of the organization to whom this recipient corresponds in the
            provider's system. In other words, likely some kind of org_id or
            customer_id in your system. Multiple values can be provided as a
            comma-separated string.
          schema:
            type: string
        - name: product_name
          in: query
          required: false
          description: >-
            Product name. Multiple values can be provided as a comma-separated
            string.
          schema:
            type: string
        - name: model_name
          in: query
          required: false
          description: >-
            Model name. Multiple values can be provided as a comma-separated
            string.
          schema:
            type: string
        - name: page_size
          in: query
          required: false
          description: Number of items to return per page.
          schema:
            type: integer
        - name: order
          in: query
          required: false
          description: Sort order for items
          schema:
            type: string
            enum:
              - asc
              - desc
        - name: cursor
          in: query
          required: false
          description: >-
            Used for pagination - represents last page seen. Value is included
            in response when there is a next page.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  status:
                    type: string
                    const: success
                  data:
                    $ref: '#/components/schemas/ListDestinationResponse'
                    $schema: https://json-schema.org/draft/2020-12/schema
                    $id: >-
                      https://github.com/prequel-co/datafeed/internal/export/api/models/list-destination-response
                  message:
                    type: string
                  has_next:
                    type: boolean
                    description: Whether there are more items beyond this page.
                  next_url:
                    type: string
                    description: >-
                      Full URL to fetch the next page. Only present when
                      has_next is true.
                type: object
                required:
                  - status
                  - data
                  - message
                  - has_next
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    ListDestinationResponse:
      properties:
        destinations:
          items:
            $ref: '#/components/schemas/DestinationResource'
          type: array
      additionalProperties: false
      type: object
      required:
        - destinations
    DestinationResource:
      oneOf:
        - properties:
            abs:
              $ref: '#/components/schemas/ABSDestinationResource'
          required:
            - abs
          title: abs
        - properties:
            athena:
              $ref: '#/components/schemas/AthenaDestinationResource'
          required:
            - athena
          title: athena
        - properties:
            aurora_mysql:
              $ref: '#/components/schemas/MySQLDestinationResource'
          required:
            - aurora_mysql
          title: aurora_mysql
        - properties:
            aurora_postgres:
              $ref: '#/components/schemas/PostgresDestinationResource'
          required:
            - aurora_postgres
          title: aurora_postgres
        - properties:
            bigquery:
              $ref: '#/components/schemas/BigQueryDestinationResource'
          required:
            - bigquery
          title: bigquery
        - properties:
            clickhouse:
              $ref: '#/components/schemas/ClickhouseDestinationResource'
          required:
            - clickhouse
          title: clickhouse
        - properties:
            databricks:
              $ref: '#/components/schemas/DatabricksDestinationResource'
          required:
            - databricks
          title: databricks
        - properties:
            delta_lake:
              $ref: '#/components/schemas/DeltaLakeDestinationResource'
          required:
            - delta_lake
          title: delta_lake
        - properties:
            gcs:
              $ref: '#/components/schemas/GCSDestinationResource'
          required:
            - gcs
          title: gcs
        - properties:
            google_sheets:
              $ref: '#/components/schemas/GoogleSheetsDestinationResource'
          required:
            - google_sheets
          title: google_sheets
        - properties:
            iceberg:
              $ref: '#/components/schemas/IcebergDestinationResource'
          required:
            - iceberg
          title: iceberg
        - properties:
            mongodb:
              $ref: '#/components/schemas/MongoDBDestinationResource'
          required:
            - mongodb
          title: mongodb
        - properties:
            motherduck:
              $ref: '#/components/schemas/MotherDuckDestinationResource'
          required:
            - motherduck
          title: motherduck
        - properties:
            mysql:
              $ref: '#/components/schemas/MySQLDestinationResource'
          required:
            - mysql
          title: mysql
        - properties:
            oracle:
              $ref: '#/components/schemas/OracleDestinationResource'
          required:
            - oracle
          title: oracle
        - properties:
            planetscale:
              $ref: '#/components/schemas/MySQLDestinationResource'
          required:
            - planetscale
          title: planetscale
        - properties:
            postgres:
              $ref: '#/components/schemas/PostgresDestinationResource'
          required:
            - postgres
          title: postgres
        - properties:
            redshift:
              $ref: '#/components/schemas/RedshiftDestinationResource'
          required:
            - redshift
          title: redshift
        - properties:
            redshift_serverless:
              $ref: '#/components/schemas/RedshiftServerlessDestinationResource'
          required:
            - redshift_serverless
          title: redshift_serverless
        - properties:
            sftp:
              $ref: '#/components/schemas/SFTPDestinationResource'
          required:
            - sftp
          title: sftp
        - properties:
            singlestore:
              $ref: '#/components/schemas/MySQLDestinationResource'
          required:
            - singlestore
          title: singlestore
        - properties:
            snowflake:
              $ref: '#/components/schemas/SnowflakeDestinationResource'
          required:
            - snowflake
          title: snowflake
        - properties:
            sql_server:
              $ref: '#/components/schemas/SQLServerDestinationResource'
          required:
            - sql_server
          title: sql_server
        - properties:
            s3:
              $ref: '#/components/schemas/S3DestinationResource'
          required:
            - s3
          title: s3
        - properties:
            s3_compatible:
              $ref: '#/components/schemas/S3CompatibleDestinationResource'
          required:
            - s3_compatible
          title: s3_compatible
      properties:
        id:
          type: string
          description: The ID of the destination.
        vendor:
          type: string
          description: The vendor of the destination.
        name:
          type: string
          description: The name of the destination.
        frequency_minutes:
          type: integer
          description: The frequency at which the destination will be updated.
        id_in_provider_system:
          type: string
          description: The ID of the destination in the provider's system.
        recipient_id:
          type: string
          description: The ID of the recipient that this destination is associated with.
        products:
          items:
            type: string
          type: array
          description: The list of products that are enabled for this destination.
        enabled_models:
          items:
            type: string
          type: array
          description: The list of models that are enabled for this destination.
        max_concurrent_transfers:
          type: integer
          description: >-
            The maximum number of concurrent transfers allowed for this
            destination.
        max_concurrent_queries_per_transfer:
          type: integer
          description: >-
            The maximum number of queries that can be run in parallel for a
            single transfer. This is used to limit the number of concurrent
            queries that can be run for a single transfer to avoid overloading
            the destination.
        is_enabled:
          type: boolean
          description: Whether the destination is enabled (vs paused).
        created_at:
          type: string
          format: date-time
          description: When this destination was created.
        updated_at:
          type: string
          format: date-time
          description: When this destination was last updated.
        last_successful_transfer_ended_at:
          type: string
          format: date-time
          description: The timestamp when the last successful transfer ended.
        last_completed_transfer:
          $ref: '#/components/schemas/ScannableTransfer'
          description: The ID of the last successful transfer.
        total_rows_transferred_last_billing_period:
          type: integer
        total_delta_rows_transferred_last_billing_period:
          type: integer
        total_rows_transferred_current_billing_period:
          type: integer
      type: object
      required:
        - id
        - vendor
        - name
        - recipient_id
        - created_at
        - updated_at
        - last_successful_transfer_ended_at
      unevaluatedProperties: false
    ErrorResponse:
      properties:
        status:
          type: string
          const: error
        message:
          type: string
        data:
          type: 'null'
      type: object
      required:
        - status
        - message
    ABSDestinationResource:
      properties:
        disable_manifest:
          type: boolean
          title: Disable Manifest Files
          description: >-
            Disables JSON manifest files (containing validation metadata)
            written with each batch of data.
        folder:
          type: string
        container_name:
          type: string
        auth_method:
          type: string
        storage_account_name:
          type: string
        file_format:
          type: string
          enum:
            - parquet
            - csv
            - json
            - jsonl
        csv:
          $ref: '#/components/schemas/FileFormatCSV'
      additionalProperties: false
      type: object
      required:
        - folder
        - container_name
        - auth_method
        - storage_account_name
    AthenaDestinationResource:
      oneOf:
        - $ref: '#/components/schemas/AthenaDestinationResourceAWSIAMRole'
        - $ref: '#/components/schemas/AthenaDestinationResourceAWSAccessKeys'
      discriminator:
        mapping:
          aws_access_keys:
            $ref: '#/components/schemas/AthenaDestinationResourceAWSAccessKeys'
          aws_iam_role:
            $ref: '#/components/schemas/AthenaDestinationResourceAWSIAMRole'
        propertyName: auth_method
    MySQLDestinationResource:
      properties:
        host:
          type: string
        port:
          type: integer
        connection_database:
          type: string
        write_database:
          type: string
        auth_method:
          type: string
          enum:
            - password_auth
        password_auth:
          $ref: '#/components/schemas/PasswordAuthResource'
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
        disable_ssl:
          type: boolean
      additionalProperties: false
      type: object
      required:
        - host
        - port
        - connection_database
        - write_database
        - auth_method
        - password_auth
        - use_ssh_tunnel
    PostgresDestinationResource:
      properties:
        host:
          type: string
        port:
          type: integer
        database:
          type: string
        schema:
          type: string
        auth_method:
          type: string
          enum:
            - password_auth
        password_auth:
          $ref: '#/components/schemas/PasswordAuthResource'
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
        disable_ssl:
          type: boolean
        connection_timeout_in_seconds:
          type: integer
          title: Connection Timeout
          description: Duration to wait for successful connection to Postgres
      additionalProperties: false
      type: object
      required:
        - host
        - port
        - database
        - schema
        - auth_method
        - password_auth
        - use_ssh_tunnel
    BigQueryDestinationResource:
      oneOf:
        - $ref: >-
            #/components/schemas/BigQueryDestinationResourceGCPServiceAccountRole
        - $ref: >-
            #/components/schemas/BigQueryDestinationResourceFederatedGCPServiceAccountRole
        - $ref: '#/components/schemas/BigQueryDestinationResourceGCPServiceAccountKey'
      discriminator:
        mapping:
          federated_gcp_service_account_role:
            $ref: >-
              #/components/schemas/BigQueryDestinationResourceFederatedGCPServiceAccountRole
          gcp_service_account_key:
            $ref: >-
              #/components/schemas/BigQueryDestinationResourceGCPServiceAccountKey
          gcp_service_account_role:
            $ref: >-
              #/components/schemas/BigQueryDestinationResourceGCPServiceAccountRole
        propertyName: auth_method
    ClickhouseDestinationResource:
      properties:
        cluster:
          type: string
        host:
          type: string
        port:
          type: integer
        connection_database:
          type: string
        write_database:
          type: string
        auth_method:
          type: string
          enum:
            - password_auth
        password_auth:
          $ref: '#/components/schemas/PasswordAuthResource'
        bucket_vendor:
          type: string
        bucket_s3:
          $ref: '#/components/schemas/ClickhouseS3BucketResource'
        bucket_gcs:
          $ref: '#/components/schemas/ClickhouseGCSBucketResource'
        disable_ssl:
          type: boolean
      additionalProperties: false
      type: object
      required:
        - host
        - port
        - connection_database
        - write_database
        - auth_method
        - password_auth
        - bucket_vendor
    DatabricksDestinationResource:
      oneOf:
        - properties:
            metastore:
              const: hive
            hive:
              $ref: '#/components/schemas/DatabricksHiveResource'
              title: Hive Metastore
          required:
            - metastore
            - hive
          title: Hive Metastore
        - properties:
            metastore:
              const: unity_catalog
          required:
            - metastore
          title: Unity Catalog Metastore
      properties:
        host:
          type: string
        port:
          type: integer
        schema:
          type: string
        catalog:
          type: string
        http_path:
          type: string
        auth_method:
          type: string
          enum:
            - access_token_auth
            - oauth_client_secret_auth
        oauth_client_secret_auth:
          $ref: '#/components/schemas/OauthClientSecretAuthResource'
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
      type: object
      required:
        - host
        - port
        - schema
        - catalog
        - http_path
        - auth_method
        - use_ssh_tunnel
      unevaluatedProperties: false
    DeltaLakeDestinationResource:
      properties:
        storage:
          type: string
        bucket_abs:
          $ref: '#/components/schemas/OpenTableFormatABSBucketResource'
        bucket_gcs:
          $ref: '#/components/schemas/OpenTableFormatGCSBucketResource'
        bucket_s3:
          $ref: '#/components/schemas/OpenTableFormatS3BucketResource'
        bucket_s3_compatible:
          $ref: '#/components/schemas/OpenTableFormatS3CompatibleBucketResource'
        retention_window_days:
          type: integer
        column_mapping_mode:
          type: string
          enum:
            - none
            - id
            - name
        deletion_vectors_disabled:
          type: boolean
        change_data_feed_disabled:
          type: boolean
      additionalProperties: false
      type: object
      required:
        - storage
        - retention_window_days
        - column_mapping_mode
    GCSDestinationResource:
      oneOf:
        - $ref: >-
            #/components/schemas/GCSDestinationResourceFederatedGCPServiceAccountRole
        - $ref: '#/components/schemas/GCSDestinationResourceGCPServiceAccountRole'
        - $ref: '#/components/schemas/GCSDestinationResourceGCSHMACKeys'
      discriminator:
        mapping:
          federated_gcp_service_account_role:
            $ref: >-
              #/components/schemas/GCSDestinationResourceFederatedGCPServiceAccountRole
          gcp_service_account_role:
            $ref: '#/components/schemas/GCSDestinationResourceGCPServiceAccountRole'
          gcs_hmac_keys:
            $ref: '#/components/schemas/GCSDestinationResourceGCSHMACKeys'
        propertyName: auth_method
    GoogleSheetsDestinationResource:
      properties:
        host:
          type: string
      additionalProperties: false
      type: object
      required:
        - host
    IcebergDestinationResource:
      properties:
        catalog:
          type: string
          enum:
            - catalog_glue
            - catalog_s3_tables
            - catalog_iceberg_rest
            - catalog_google_lakehouse
          title: Catalog
        catalog_iceberg_rest:
          $ref: '#/components/schemas/IcebergRestCatalogResource'
        catalog_s3_tables:
          $ref: '#/components/schemas/IcebergAwsS3TablesCatalogResource'
        catalog_glue:
          $ref: '#/components/schemas/IcebergAwsGlueCatalogResource'
        catalog_google_lakehouse:
          $ref: '#/components/schemas/IcebergGoogleLakehouseCatalogResource'
        retention_window_days:
          type: integer
      additionalProperties: false
      type: object
      required:
        - catalog
        - retention_window_days
    MongoDBDestinationResource:
      oneOf:
        - $ref: '#/components/schemas/MongoDBDestinationResourceAWSIAMRole'
        - $ref: '#/components/schemas/MongoDBDestinationResourcePasswordAuth'
      discriminator:
        mapping:
          aws_iam_role:
            $ref: '#/components/schemas/MongoDBDestinationResourceAWSIAMRole'
          password_auth:
            $ref: '#/components/schemas/MongoDBDestinationResourcePasswordAuth'
        propertyName: auth_method
    MotherDuckDestinationResource:
      properties:
        database:
          type: string
        schema:
          type: string
        auth_method:
          type: string
          enum:
            - access_token_auth
      additionalProperties: false
      type: object
      required:
        - database
        - schema
        - auth_method
    OracleDestinationResource:
      properties:
        host:
          type: string
        port:
          type: integer
        database:
          type: string
        schema:
          type: string
        auth_method:
          type: string
          enum:
            - password_auth
        password_auth:
          $ref: '#/components/schemas/PasswordAuthResource'
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
        disable_ssl:
          type: boolean
      additionalProperties: false
      type: object
      required:
        - host
        - port
        - database
        - schema
        - auth_method
        - password_auth
        - use_ssh_tunnel
    RedshiftDestinationResource:
      oneOf:
        - $ref: '#/components/schemas/RedshiftDestinationResourceAWSAccessKeys'
        - $ref: '#/components/schemas/RedshiftDestinationResourceAWSIAMRole'
      discriminator:
        mapping:
          aws_access_keys:
            $ref: '#/components/schemas/RedshiftDestinationResourceAWSAccessKeys'
          aws_iam_role:
            $ref: '#/components/schemas/RedshiftDestinationResourceAWSIAMRole'
        propertyName: auth_method
    RedshiftServerlessDestinationResource:
      oneOf:
        - $ref: >-
            #/components/schemas/RedshiftServerlessDestinationResourceAWSAccessKeys
        - $ref: '#/components/schemas/RedshiftServerlessDestinationResourceAWSIAMRole'
      discriminator:
        mapping:
          aws_access_keys:
            $ref: >-
              #/components/schemas/RedshiftServerlessDestinationResourceAWSAccessKeys
          aws_iam_role:
            $ref: >-
              #/components/schemas/RedshiftServerlessDestinationResourceAWSIAMRole
        propertyName: auth_method
    SFTPDestinationResource:
      oneOf:
        - properties:
            file_encryption:
              const: pgp
            pgp:
              $ref: '#/components/schemas/PGPEncryption'
              description: Required details for PGP encryption.
          required:
            - file_encryption
            - pgp
      properties:
        username:
          type: string
        host:
          type: string
        port:
          type: integer
        folder:
          type: string
        file_format:
          type: string
          enum:
            - parquet
            - csv
            - json
            - jsonl
        csv:
          $ref: '#/components/schemas/FileFormatCSV'
        auth_method:
          type: string
          enum:
            - public_key_auth
        public_key_auth:
          $ref: '#/components/schemas/PublicKeyAuth'
      type: object
      required:
        - username
        - host
        - port
        - folder
        - file_format
        - auth_method
        - public_key_auth
      unevaluatedProperties: false
    SnowflakeDestinationResource:
      properties:
        username:
          type: string
        host:
          type: string
        port:
          type: integer
        database:
          type: string
        schema:
          type: string
        auth_method:
          type: string
          enum:
            - password_auth
            - public_key_auth
        public_key_auth:
          $ref: '#/components/schemas/PublicKeyAuth'
      additionalProperties: false
      type: object
      required:
        - username
        - host
        - port
        - database
        - schema
        - auth_method
    SQLServerDestinationResource:
      properties:
        host:
          type: string
        port:
          type: integer
        database:
          type: string
        schema:
          type: string
        auth_method:
          type: string
          enum:
            - password_auth
        password_auth:
          $ref: '#/components/schemas/PasswordAuthResource'
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
        disable_ssl:
          type: boolean
        primary_key_collation:
          type: string
      additionalProperties: false
      type: object
      required:
        - host
        - port
        - database
        - schema
        - auth_method
        - password_auth
        - use_ssh_tunnel
    S3DestinationResource:
      oneOf:
        - $ref: '#/components/schemas/S3DestinationResourceAWSIAMRole'
        - $ref: '#/components/schemas/S3DestinationResourceAWSAccessKeys'
      discriminator:
        mapping:
          aws_access_keys:
            $ref: '#/components/schemas/S3DestinationResourceAWSAccessKeys'
          aws_iam_role:
            $ref: '#/components/schemas/S3DestinationResourceAWSIAMRole'
        propertyName: auth_method
    S3CompatibleDestinationResource:
      properties:
        host:
          type: string
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 443
        disable_manifest:
          type: boolean
          title: Disable Manifest Files
          description: >-
            Disables JSON manifest files (containing validation metadata)
            written with each batch of data.
        folder:
          type: string
        file_format:
          type: string
          enum:
            - parquet
            - csv
            - json
            - jsonl
        csv:
          $ref: '#/components/schemas/FileFormatCSV'
        bucket_name:
          type: string
        auth_method:
          type: string
          enum:
            - access_keys
        access_keys:
          $ref: '#/components/schemas/AWSAccessKeysResource'
        disable_ssl:
          type: boolean
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
      additionalProperties: false
      type: object
      required:
        - host
        - port
        - folder
        - bucket_name
        - auth_method
        - use_ssh_tunnel
    ScannableTransfer:
      properties:
        id:
          type: string
        source_ids:
          $ref: '#/components/schemas/StringArray'
        destination_id:
          type: string
        status:
          type: string
        is_full_refresh:
          type: boolean
        models:
          $ref: '#/components/schemas/StringArray'
        model_metrics:
          $ref: '#/components/schemas/TransferModelMetrics'
        models_snapshot:
          $ref: '#/components/schemas/TransferModelsSnapshot'
        log:
          type: string
        submitted_at:
          type: string
          format: date-time
        start_transfer_window_at:
          type: string
          format: date-time
        end_transfer_window_at:
          type: string
          format: date-time
        started_at:
          type: string
          format: date-time
        ended_at:
          type: string
          format: date-time
        rows_transferred:
          type: integer
        delta_rows_transferred:
          type: integer
        volume_transferred_in_mb:
          type: number
        is_debug_mode:
          type: boolean
        tags:
          $ref: '#/components/schemas/TransferTags'
        actor_id:
          type: string
        actor_type:
          type: string
      additionalProperties: false
      type: object
      required:
        - id
        - status
        - is_full_refresh
        - models
        - log
        - submitted_at
        - start_transfer_window_at
        - end_transfer_window_at
        - rows_transferred
        - delta_rows_transferred
        - volume_transferred_in_mb
        - is_debug_mode
        - actor_id
        - actor_type
    FileFormatCSV:
      properties:
        delimiter:
          type: string
          title: Delimiter
          description: The delimiter to use for the CSV file. Must be a single character.
      additionalProperties: false
      type: object
      required:
        - delimiter
    AthenaDestinationResourceAWSIAMRole:
      properties:
        workgroup:
          type: string
        connection_database:
          type: string
        write_database:
          type: string
        bucket_s3:
          $ref: '#/components/schemas/S3BucketResource'
        auth_method:
          const: aws_iam_role
        aws_iam_role:
          $ref: '#/components/schemas/AWSIAMRoleResource'
          title: Authenticate using an AWS IAM role (recommended)
      type: object
      required:
        - workgroup
        - connection_database
        - write_database
        - bucket_s3
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    AthenaDestinationResourceAWSAccessKeys:
      properties:
        workgroup:
          type: string
        connection_database:
          type: string
        write_database:
          type: string
        bucket_s3:
          $ref: '#/components/schemas/S3BucketResource'
        auth_method:
          const: aws_access_keys
        aws_access_keys:
          $ref: '#/components/schemas/AWSAccessKeysResource'
          title: Authenticate using AWS access keys
      type: object
      required:
        - workgroup
        - connection_database
        - write_database
        - bucket_s3
        - auth_method
        - aws_access_keys
      title: Authenticate using AWS access keys
      unevaluatedProperties: false
    PasswordAuthResource:
      properties:
        username:
          type: string
      additionalProperties: false
      type: object
      required:
        - username
    SSHTunnelResource:
      properties:
        ssh_tunnel_host:
          type: string
        ssh_tunnel_port:
          type: integer
        ssh_tunnel_username:
          type: string
        ssh_public_key:
          type: string
      additionalProperties: false
      type: object
    BigQueryDestinationResourceGCPServiceAccountRole:
      properties:
        project_id:
          type: string
        schema:
          type: string
        bucket_gcs:
          $ref: '#/components/schemas/BigQueryGCSBucketResource'
        auth_method:
          const: gcp_service_account_role
        gcp_service_account_role:
          $ref: '#/components/schemas/GCPServiceAccountRoleResource'
          title: Authenticate using a GCP service account (recommended)
      type: object
      required:
        - project_id
        - schema
        - bucket_gcs
        - auth_method
        - gcp_service_account_role
      title: Authenticate using a GCP service account (recommended)
      unevaluatedProperties: false
    BigQueryDestinationResourceFederatedGCPServiceAccountRole:
      properties:
        project_id:
          type: string
        schema:
          type: string
        bucket_gcs:
          $ref: '#/components/schemas/BigQueryGCSBucketResource'
        auth_method:
          const: federated_gcp_service_account_role
        federated_gcp_service_account_role:
          $ref: '#/components/schemas/FederatedGCPServiceAccountRoleResource'
          title: Authenticate using federation (only if self-hosting)
      type: object
      required:
        - project_id
        - schema
        - bucket_gcs
        - auth_method
        - federated_gcp_service_account_role
      title: Authenticate using federation (only if self-hosting)
      unevaluatedProperties: false
    BigQueryDestinationResourceGCPServiceAccountKey:
      properties:
        project_id:
          type: string
        schema:
          type: string
        bucket_gcs:
          $ref: '#/components/schemas/BigQueryGCSBucketResource'
        auth_method:
          const: gcp_service_account_key
        gcp_service_account_key:
          $ref: '#/components/schemas/GCPServiceAccountKeyResource'
          title: Authenticate using direct access
      type: object
      required:
        - project_id
        - schema
        - bucket_gcs
        - auth_method
        - gcp_service_account_key
      title: Authenticate using direct access
      unevaluatedProperties: false
    ClickhouseS3BucketResource:
      properties:
        bucket_name:
          type: string
        bucket_region:
          type: string
        bucket_auth_method:
          type: string
        aws_iam_role:
          $ref: '#/components/schemas/AWSIAMRoleResource'
        aws_access_keys:
          $ref: '#/components/schemas/AWSAccessKeysResource'
      additionalProperties: false
      type: object
      required:
        - bucket_name
        - bucket_region
        - bucket_auth_method
    ClickhouseGCSBucketResource:
      properties:
        bucket_name:
          type: string
        gcs_hmac_keys:
          $ref: '#/components/schemas/GCSAccessKeysResource'
      additionalProperties: false
      type: object
      required:
        - bucket_name
        - gcs_hmac_keys
    DatabricksHiveResource:
      oneOf:
        - properties:
            bucket_s3:
              $ref: '#/components/schemas/DatabricksS3BucketResource'
          required:
            - bucket_s3
          title: bucket_s3
      properties:
        bucket_vendor:
          type: string
      type: object
      required:
        - bucket_vendor
      unevaluatedProperties: false
    OauthClientSecretAuthResource:
      properties:
        client_id:
          type: string
      additionalProperties: false
      type: object
      required:
        - client_id
    OpenTableFormatABSBucketResource:
      properties:
        container_name:
          type: string
        folder:
          type: string
        storage_account_name:
          type: string
        bucket_auth_method:
          type: string
      additionalProperties: false
      type: object
      required:
        - container_name
        - folder
        - storage_account_name
        - bucket_auth_method
    OpenTableFormatGCSBucketResource:
      oneOf:
        - properties:
            gcp_service_account_role:
              $ref: '#/components/schemas/GCPServiceAccountRoleResource'
          required:
            - gcp_service_account_role
          title: gcp_service_account_role
        - properties:
            federated_gcp_service_account_role:
              $ref: '#/components/schemas/FederatedGCPServiceAccountRoleResource'
          required:
            - federated_gcp_service_account_role
          title: federated_gcp_service_account_role
        - properties:
            gcp_service_account_key:
              $ref: >-
                #/components/schemas/OpenTableFormatGCSDestinationServiceAccountKeyResource
          required:
            - gcp_service_account_key
          title: gcp_service_account_key
      properties:
        bucket_name:
          type: string
          title: GCS bucket name
        folder:
          type: string
        bucket_auth_method:
          type: string
          enum:
            - gcp_service_account_role
            - gcp_service_account_key
      type: object
      required:
        - bucket_name
        - folder
        - bucket_auth_method
      unevaluatedProperties: false
    OpenTableFormatS3BucketResource:
      oneOf:
        - properties:
            bucket_auth_method:
              const: aws_iam_role
            aws_iam_role:
              $ref: '#/components/schemas/AWSIAMRoleResource'
              title: Authenticate using an AWS IAM role (recommended)
          required:
            - bucket_auth_method
            - aws_iam_role
          title: Authenticate using an AWS IAM role (recommended)
        - properties:
            bucket_auth_method:
              const: aws_access_keys
            aws_access_keys:
              $ref: '#/components/schemas/AWSAccessKeysResource'
              title: Authenticate using AWS access keys
          required:
            - bucket_auth_method
            - aws_access_keys
          title: Authenticate using AWS access keys
      properties:
        bucket_name:
          type: string
        bucket_region:
          type: string
        folder:
          type: string
      type: object
      required:
        - bucket_name
        - bucket_region
        - folder
      unevaluatedProperties: false
    OpenTableFormatS3CompatibleBucketResource:
      properties:
        bucket_host:
          type: string
        bucket_port:
          type: integer
          exclusiveMinimum: 0
        folder:
          type: string
        bucket_name:
          type: string
        bucket_auth_method:
          type: string
          enum:
            - access_keys
        access_keys:
          $ref: '#/components/schemas/AWSAccessKeysResource'
        disable_ssl:
          type: boolean
          title: Disable SSL
      additionalProperties: false
      type: object
      required:
        - bucket_host
        - bucket_port
        - folder
        - bucket_name
        - bucket_auth_method
    GCSDestinationResourceFederatedGCPServiceAccountRole:
      properties:
        disable_manifest:
          type: boolean
          title: Disable Manifest Files
          description: >-
            Disables JSON manifest files (containing validation metadata)
            written with each batch of data.
        folder:
          type: string
        file_format:
          type: string
          enum:
            - parquet
            - csv
            - json
            - jsonl
        csv:
          $ref: '#/components/schemas/FileFormatCSV'
        bucket_name:
          type: string
        auth_method:
          const: federated_gcp_service_account_role
        federated_gcp_service_account_role:
          $ref: '#/components/schemas/FederatedGCPServiceAccountRoleResource'
          title: Authenticate using federation (only if self-hosting)
      type: object
      required:
        - folder
        - bucket_name
        - auth_method
        - federated_gcp_service_account_role
      title: Authenticate using federation (only if self-hosting)
      unevaluatedProperties: false
    GCSDestinationResourceGCPServiceAccountRole:
      properties:
        disable_manifest:
          type: boolean
          title: Disable Manifest Files
          description: >-
            Disables JSON manifest files (containing validation metadata)
            written with each batch of data.
        folder:
          type: string
        file_format:
          type: string
          enum:
            - parquet
            - csv
            - json
            - jsonl
        csv:
          $ref: '#/components/schemas/FileFormatCSV'
        bucket_name:
          type: string
        auth_method:
          const: gcp_service_account_role
        gcp_service_account_role:
          $ref: '#/components/schemas/GCPServiceAccountRoleResource'
          title: Authenticate using a GCP service account (recommended)
      type: object
      required:
        - folder
        - bucket_name
        - auth_method
        - gcp_service_account_role
      title: Authenticate using a GCP service account (recommended)
      unevaluatedProperties: false
    GCSDestinationResourceGCSHMACKeys:
      properties:
        disable_manifest:
          type: boolean
          title: Disable Manifest Files
          description: >-
            Disables JSON manifest files (containing validation metadata)
            written with each batch of data.
        folder:
          type: string
        file_format:
          type: string
          enum:
            - parquet
            - csv
            - json
            - jsonl
        csv:
          $ref: '#/components/schemas/FileFormatCSV'
        bucket_name:
          type: string
        auth_method:
          const: gcs_hmac_keys
        gcs_hmac_keys:
          $ref: '#/components/schemas/GCSAccessKeysResource'
          title: Authenticate using GCS HMAC keys
      type: object
      required:
        - folder
        - bucket_name
        - auth_method
        - gcs_hmac_keys
      title: Authenticate using GCS HMAC keys
      unevaluatedProperties: false
    IcebergRestCatalogResource:
      properties:
        host:
          type: string
        port:
          type: integer
        namespace:
          type: string
        warehouse:
          type: string
        auth_method:
          type: string
        oauth_client_secret_auth:
          $ref: '#/components/schemas/OauthDelegatedCredentialAuthResource'
        storage_options:
          $ref: '#/components/schemas/IcebergStorageOptionsResource'
      additionalProperties: false
      type: object
      required:
        - host
        - namespace
        - warehouse
        - auth_method
        - storage_options
    IcebergAwsS3TablesCatalogResource:
      properties:
        storage_options:
          $ref: '#/components/schemas/IcebergAwsStorageOptionsResource'
        namespace:
          type: string
        table_bucket_arn:
          type: string
      additionalProperties: false
      type: object
      required:
        - storage_options
        - namespace
        - table_bucket_arn
    IcebergAwsGlueCatalogResource:
      properties:
        storage_options:
          $ref: '#/components/schemas/IcebergAwsStorageOptionsResource'
        database:
          type: string
      additionalProperties: false
      type: object
      required:
        - storage_options
        - database
    IcebergGoogleLakehouseCatalogResource:
      properties:
        project_id:
          type: string
        catalog_name:
          type: string
        schema:
          type: string
        bucket_name:
          type: string
        auth_method:
          type: string
        gcp_service_account_role:
          $ref: '#/components/schemas/GCPServiceAccountRoleResource'
        federated_gcp_service_account_role:
          $ref: '#/components/schemas/FederatedGCPServiceAccountRoleResource'
        gcp_service_account_key:
          $ref: >-
            #/components/schemas/OpenTableFormatGCSDestinationServiceAccountKeyResource
      additionalProperties: false
      type: object
      required:
        - project_id
        - catalog_name
        - schema
        - bucket_name
        - auth_method
    MongoDBDestinationResourceAWSIAMRole:
      properties:
        host:
          type: string
        port:
          type: integer
        authentication_database:
          type: string
        write_database:
          type: string
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
        disable_ssl:
          type: boolean
        auth_method:
          const: aws_iam_role
        aws_iam_role:
          $ref: '#/components/schemas/AWSIAMRoleResource'
          title: Authenticate using an AWS IAM role (recommended)
      type: object
      required:
        - host
        - port
        - authentication_database
        - write_database
        - use_ssh_tunnel
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    MongoDBDestinationResourcePasswordAuth:
      properties:
        host:
          type: string
        port:
          type: integer
        authentication_database:
          type: string
        write_database:
          type: string
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
        disable_ssl:
          type: boolean
        auth_method:
          const: password_auth
        password_auth:
          $ref: '#/components/schemas/PasswordAuthResource'
          title: Authenticate using a username and password
      type: object
      required:
        - host
        - port
        - authentication_database
        - write_database
        - use_ssh_tunnel
        - auth_method
        - password_auth
      title: Authenticate using a username and password
      unevaluatedProperties: false
    RedshiftDestinationResourceAWSAccessKeys:
      properties:
        host:
          type: string
        port:
          type: integer
        database:
          type: string
        schema:
          type: string
        cluster:
          type: string
        username:
          type: string
        bucket_s3:
          $ref: '#/components/schemas/RedshiftS3BucketResource'
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
        auth_method:
          const: aws_access_keys
        aws_access_keys:
          $ref: '#/components/schemas/RedshiftAccessKeysResource'
          title: Authenticate using AWS access keys
      type: object
      required:
        - host
        - port
        - database
        - schema
        - cluster
        - username
        - bucket_s3
        - use_ssh_tunnel
        - auth_method
        - aws_access_keys
      title: Authenticate using AWS access keys
      unevaluatedProperties: false
    RedshiftDestinationResourceAWSIAMRole:
      properties:
        host:
          type: string
        port:
          type: integer
        database:
          type: string
        schema:
          type: string
        cluster:
          type: string
        username:
          type: string
        bucket_s3:
          $ref: '#/components/schemas/RedshiftS3BucketResource'
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
        auth_method:
          const: aws_iam_role
        aws_iam_role:
          $ref: '#/components/schemas/AWSIAMRoleResource'
          title: Authenticate using an AWS IAM role (recommended)
      type: object
      required:
        - host
        - port
        - database
        - schema
        - cluster
        - username
        - bucket_s3
        - use_ssh_tunnel
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    RedshiftServerlessDestinationResourceAWSAccessKeys:
      properties:
        workgroup:
          type: string
        host:
          type: string
        port:
          type: integer
        database:
          type: string
        schema:
          type: string
        bucket_s3:
          $ref: '#/components/schemas/RedshiftS3BucketResource'
        auth_method:
          const: aws_access_keys
        aws_access_keys:
          $ref: '#/components/schemas/AWSAccessKeysResource'
          title: Authenticate using AWS access keys
      type: object
      required:
        - workgroup
        - host
        - port
        - database
        - schema
        - bucket_s3
        - auth_method
        - aws_access_keys
      title: Authenticate using AWS access keys
      unevaluatedProperties: false
    RedshiftServerlessDestinationResourceAWSIAMRole:
      properties:
        workgroup:
          type: string
        host:
          type: string
        port:
          type: integer
        database:
          type: string
        schema:
          type: string
        bucket_s3:
          $ref: '#/components/schemas/RedshiftS3BucketResource'
        auth_method:
          const: aws_iam_role
        aws_iam_role:
          $ref: '#/components/schemas/AWSIAMRoleResource'
          title: Authenticate using an AWS IAM role (recommended)
      type: object
      required:
        - workgroup
        - host
        - port
        - database
        - schema
        - bucket_s3
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    PGPEncryption:
      properties:
        pgp_public_key:
          type: string
          title: PGP public key
          description: PGP public key in ASCII armored format.
      additionalProperties: false
      type: object
      required:
        - pgp_public_key
    PublicKeyAuth:
      properties:
        public_key:
          type: string
          enum:
            - primary_public_key
            - secondary_public_key
          title: Public key
          description: >-
            This is the public SSH key that will be used to establish the SSH
            tunnel. It should be added to the list of authorized keys on the
            bastion host.
      additionalProperties: false
      type: object
      required:
        - public_key
    S3DestinationResourceAWSIAMRole:
      properties:
        disable_manifest:
          type: boolean
          title: Disable Manifest Files
          description: >-
            Disables JSON manifest files (containing validation metadata)
            written with each batch of data.
        folder:
          type: string
        file_format:
          type: string
          enum:
            - parquet
            - csv
            - json
            - jsonl
        csv:
          $ref: '#/components/schemas/FileFormatCSV'
        bucket_name:
          type: string
        bucket_region:
          type: string
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
        auth_method:
          const: aws_iam_role
        aws_iam_role:
          $ref: '#/components/schemas/AWSIAMRoleResource'
          title: Authenticate using an AWS IAM role (recommended)
      type: object
      required:
        - folder
        - bucket_name
        - bucket_region
        - use_ssh_tunnel
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    S3DestinationResourceAWSAccessKeys:
      properties:
        disable_manifest:
          type: boolean
          title: Disable Manifest Files
          description: >-
            Disables JSON manifest files (containing validation metadata)
            written with each batch of data.
        folder:
          type: string
        file_format:
          type: string
          enum:
            - parquet
            - csv
            - json
            - jsonl
        csv:
          $ref: '#/components/schemas/FileFormatCSV'
        bucket_name:
          type: string
        bucket_region:
          type: string
        use_ssh_tunnel:
          type: boolean
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelResource'
        auth_method:
          const: aws_access_keys
        aws_access_keys:
          $ref: '#/components/schemas/AWSAccessKeysResource'
          title: Authenticate using AWS access keys
      type: object
      required:
        - folder
        - bucket_name
        - bucket_region
        - use_ssh_tunnel
        - auth_method
        - aws_access_keys
      title: Authenticate using AWS access keys
      unevaluatedProperties: false
    AWSAccessKeysResource:
      properties:
        access_id:
          type: string
      additionalProperties: false
      type: object
      required:
        - access_id
    StringArray:
      items:
        type: string
      type: array
    TransferModelMetrics:
      items:
        $ref: '#/components/schemas/MetricsForTransferredModel'
      type: array
    TransferModelsSnapshot:
      items:
        $ref: '#/components/schemas/TransferModelSnapshot'
      type: array
    TransferTags:
      additionalProperties:
        type: string
      type: object
    S3BucketResource:
      properties:
        bucket_name:
          type: string
        bucket_region:
          type: string
      additionalProperties: false
      type: object
      required:
        - bucket_name
        - bucket_region
    AWSIAMRoleResource:
      properties:
        aws_iam_role_arn:
          type: string
      additionalProperties: false
      type: object
      required:
        - aws_iam_role_arn
    BigQueryGCSBucketResource:
      properties:
        bucket_name:
          type: string
        bucket_region:
          type: string
      additionalProperties: false
      type: object
      required:
        - bucket_name
        - bucket_region
    GCPServiceAccountRoleResource:
      properties:
        service_account_email:
          type: string
      additionalProperties: false
      type: object
      required:
        - service_account_email
    FederatedGCPServiceAccountRoleResource:
      properties:
        service_account_email:
          type: string
      additionalProperties: false
      type: object
      required:
        - service_account_email
    GCPServiceAccountKeyResource:
      properties:
        service_account_email:
          type: string
      additionalProperties: false
      type: object
      required:
        - service_account_email
    GCSAccessKeysResource:
      properties:
        access_key:
          type: string
      additionalProperties: false
      type: object
      required:
        - access_key
    DatabricksS3BucketResource:
      properties:
        bucket_name:
          type: string
        bucket_region:
          type: string
        aws_access_keys:
          $ref: '#/components/schemas/AWSAccessKeysResource'
      additionalProperties: false
      type: object
      required:
        - bucket_name
        - bucket_region
        - aws_access_keys
    OpenTableFormatGCSDestinationServiceAccountKeyResource:
      properties:
        service_account_email:
          type: string
      additionalProperties: false
      type: object
      required:
        - service_account_email
    OauthDelegatedCredentialAuthResource:
      properties:
        client_id:
          type: string
      additionalProperties: false
      type: object
    IcebergStorageOptionsResource:
      properties:
        storage:
          type: string
        bucket_abs:
          $ref: '#/components/schemas/OpenTableFormatABSBucketResource'
        bucket_gcs:
          $ref: '#/components/schemas/OpenTableFormatGCSBucketResource'
        bucket_s3:
          $ref: '#/components/schemas/OpenTableFormatS3BucketResource'
        bucket_s3_compatible:
          $ref: '#/components/schemas/OpenTableFormatS3CompatibleBucketResource'
      additionalProperties: false
      type: object
      required:
        - storage
    IcebergAwsStorageOptionsResource:
      properties:
        storage:
          type: string
        bucket_s3:
          $ref: '#/components/schemas/OpenTableFormatS3BucketResource'
      additionalProperties: false
      type: object
      required:
        - storage
    RedshiftS3BucketResource:
      properties:
        bucket_name:
          type: string
        bucket_region:
          type: string
      additionalProperties: false
      type: object
      required:
        - bucket_name
        - bucket_region
    RedshiftAccessKeysResource:
      properties:
        access_id:
          type: string
      additionalProperties: false
      type: object
      required:
        - access_id
    MetricsForTransferredModel:
      properties:
        model_id:
          type: string
        model_name:
          type: string
        rows_transferred:
          type: integer
        delta_rows_transferred:
          type: integer
        volume_transferred_in_mb:
          type: number
        start_transfer_window_at:
          type: string
          format: date-time
        end_transfer_window_at:
          type: string
          format: date-time
        most_recent_last_updated_at:
          type: string
          format: date-time
        error:
          $ref: '#/components/schemas/CodedError'
      additionalProperties: false
      type: object
      required:
        - model_id
        - rows_transferred
        - delta_rows_transferred
        - volume_transferred_in_mb
        - start_transfer_window_at
        - end_transfer_window_at
        - most_recent_last_updated_at
        - error
    TransferModelSnapshot:
      properties:
        model_id:
          type: string
        model_name:
          type: string
        revision_id:
          type: string
      additionalProperties: false
      type: object
      required:
        - model_id
        - model_name
        - revision_id
    CodedError:
      properties:
        error: true
        error_code:
          type: string
          description: >-
            A unique Prequel error code in the format PRQL-XXXX identifying the
            specific error type.
        title:
          type: string
          description: Short human-readable label for the error.
        blame:
          type: string
          description: 'Who is responsible for the error. One of: first_party'
        documentation_url:
          type: string
          description: Link to Prequel documentation for this specific error code.
        trace:
          type: string
          description: Raw error trace.
        message:
          type: string
          description: User-facing explanation of the error and how to resolve it.
      additionalProperties: false
      type: object
      required:
        - error
        - error_code
        - title
        - blame
        - documentation_url
        - trace
        - message
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````