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

# Create import source

> Add a new import source.



## OpenAPI

````yaml /generated/openapi-generated-2023-12-01.json post /import/sources
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:
  /import/sources:
    post:
      tags:
        - Import Sources
      summary: Create import source
      description: Add a new import source.
      operationId: create-import-source
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSourceRequest'
              $schema: https://json-schema.org/draft/2020-12/schema
              $id: >-
                https://github.com/prequel-co/datafeed/internal/import/api/models/create-source-request
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  status:
                    type: string
                    const: success
                  data:
                    $ref: '#/components/schemas/GetSourceResponse'
                    $schema: https://json-schema.org/draft/2020-12/schema
                    $id: >-
                      https://github.com/prequel-co/datafeed/internal/import/api/models/get-source-response
                  message:
                    type: string
                type: object
                required:
                  - status
                  - data
                  - message
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    CreateSourceRequest:
      properties:
        source:
          $ref: '#/components/schemas/SourceOptions'
      additionalProperties: false
      type: object
      required:
        - source
    GetSourceResponse:
      properties:
        source:
          $ref: '#/components/schemas/SourceResource'
      additionalProperties: false
      type: object
      required:
        - source
    SourceOptions:
      oneOf:
        - properties:
            vendor:
              const: athena
            athena:
              $ref: '#/components/schemas/AthenaSourceOptions'
              title: Amazon Athena
          required:
            - vendor
            - athena
          title: Amazon Athena
        - properties:
            vendor:
              const: aurora_mysql
            aurora_mysql:
              $ref: '#/components/schemas/MySQLSourceOptions'
              title: Amazon Aurora MySQL
          required:
            - vendor
            - aurora_mysql
          title: Amazon Aurora MySQL
        - properties:
            vendor:
              const: aurora_postgres
            aurora_postgres:
              $ref: '#/components/schemas/PostgresSourceOptions'
              title: Amazon Aurora PostgreSQL
          required:
            - vendor
            - aurora_postgres
          title: Amazon Aurora PostgreSQL
        - properties:
            vendor:
              const: bigquery
            bigquery:
              $ref: '#/components/schemas/BigQuerySourceOptions'
              title: Google BigQuery
          required:
            - vendor
            - bigquery
          title: Google BigQuery
        - properties:
            vendor:
              const: clickhouse
            clickhouse:
              $ref: '#/components/schemas/ClickhouseSourceOptions'
              title: ClickHouse
          required:
            - vendor
            - clickhouse
          title: ClickHouse
        - properties:
            vendor:
              const: databricks
            databricks:
              $ref: '#/components/schemas/DatabricksSourceOptions'
              title: Databricks
          required:
            - vendor
            - databricks
          title: Databricks
        - properties:
            vendor:
              const: mock
            mock:
              $ref: '#/components/schemas/MockSourceOptions'
              title: Mock (for testing in staging only)
          required:
            - vendor
            - mock
          title: Mock (for testing in staging only)
        - properties:
            vendor:
              const: mongodb
            mongodb:
              $ref: '#/components/schemas/MongoDBSourceOptions'
              title: MongoDB
          required:
            - vendor
            - mongodb
          title: MongoDB
        - properties:
            vendor:
              const: motherduck
            motherduck:
              $ref: '#/components/schemas/MotherDuckSourceOptions'
              title: MotherDuck
          required:
            - vendor
            - motherduck
          title: MotherDuck
        - properties:
            vendor:
              const: mysql
            mysql:
              $ref: '#/components/schemas/MySQLSourceOptions'
              title: MySQL
          required:
            - vendor
            - mysql
          title: MySQL
        - properties:
            vendor:
              const: oracle
            oracle:
              $ref: '#/components/schemas/OracleSourceOptions'
              title: Oracle
          required:
            - vendor
            - oracle
          title: Oracle
        - properties:
            vendor:
              const: postgres
            postgres:
              $ref: '#/components/schemas/PostgresSourceOptions'
              title: PostgreSQL
          required:
            - vendor
            - postgres
          title: PostgreSQL
        - properties:
            vendor:
              const: redshift
            redshift:
              $ref: '#/components/schemas/RedshiftSourceOptions'
              title: Amazon Redshift
          required:
            - vendor
            - redshift
          title: Amazon Redshift
        - properties:
            vendor:
              const: redshift_serverless
            redshift_serverless:
              $ref: '#/components/schemas/RedshiftServerlessSourceOptions'
              title: Amazon Redshift Serverless
          required:
            - vendor
            - redshift_serverless
          title: Amazon Redshift Serverless
        - properties:
            vendor:
              const: singlestore
            singlestore:
              $ref: '#/components/schemas/MySQLSourceOptions'
              title: SingleStore
          required:
            - vendor
            - singlestore
          title: SingleStore
        - properties:
            vendor:
              const: snowflake
            snowflake:
              $ref: '#/components/schemas/SnowflakeSourceOptions'
              title: Snowflake
          required:
            - vendor
            - snowflake
          title: Snowflake
        - properties:
            vendor:
              const: sql_server
            sql_server:
              $ref: '#/components/schemas/SQLServerSourceOptions'
              title: SQL Server
          required:
            - vendor
            - sql_server
          title: SQL Server
      properties:
        name:
          type: string
          title: Source name
          description: Descriptive name for this source.
        max_concurrent_transfers:
          type: integer
          title: Max concurrent transfers
          description: Maximum number of concurrent transfers allowed for this source.
        max_concurrent_queries_per_transfer:
          type: integer
          title: Max concurrent queries per transfer
          description: >-
            Maximum number of concurrent queries allowed per transfer for this
            source.
      type: object
      required:
        - name
      unevaluatedProperties: false
    SourceResource:
      oneOf:
        - properties:
            athena:
              $ref: '#/components/schemas/AthenaSourceResource'
          required:
            - athena
          title: athena
        - properties:
            aurora_mysql:
              $ref: '#/components/schemas/MySQLSourceResource'
          required:
            - aurora_mysql
          title: aurora_mysql
        - properties:
            aurora_postgres:
              $ref: '#/components/schemas/PostgresSourceResource'
          required:
            - aurora_postgres
          title: aurora_postgres
        - properties:
            bigquery:
              $ref: '#/components/schemas/BigQuerySourceResource'
          required:
            - bigquery
          title: bigquery
        - properties:
            clickhouse:
              $ref: '#/components/schemas/ClickhouseSourceResource'
          required:
            - clickhouse
          title: clickhouse
        - properties:
            databricks:
              $ref: '#/components/schemas/DatabricksSourceResource'
          required:
            - databricks
          title: databricks
        - properties:
            mock:
              $ref: '#/components/schemas/MockSourceResource'
          required:
            - mock
          title: mock
        - properties:
            mongodb:
              $ref: '#/components/schemas/MongoDBSourceResource'
          required:
            - mongodb
          title: mongodb
        - properties:
            motherduck:
              $ref: '#/components/schemas/MotherDuckSourceResource'
          required:
            - motherduck
          title: motherduck
        - properties:
            mysql:
              $ref: '#/components/schemas/MySQLSourceResource'
          required:
            - mysql
          title: mysql
        - properties:
            oracle:
              $ref: '#/components/schemas/OracleSourceResource'
          required:
            - oracle
          title: oracle
        - properties:
            postgres:
              $ref: '#/components/schemas/PostgresSourceResource'
          required:
            - postgres
          title: postgres
        - properties:
            redshift:
              $ref: '#/components/schemas/RedshiftSourceResource'
          required:
            - redshift
          title: redshift
        - properties:
            redshift_serverless:
              $ref: '#/components/schemas/RedshiftServerlessSourceResource'
          required:
            - redshift_serverless
          title: redshift_serverless
        - properties:
            singlestore:
              $ref: '#/components/schemas/MySQLSourceResource'
          required:
            - singlestore
          title: singlestore
        - properties:
            snowflake:
              $ref: '#/components/schemas/SnowflakeSourceResource'
          required:
            - snowflake
          title: snowflake
        - properties:
            sql_server:
              $ref: '#/components/schemas/SQLServerResource'
          required:
            - sql_server
          title: sql_server
      properties:
        id:
          type: string
          description: Prequel-generated unique identifier for the source.
        vendor:
          type: string
          description: The vendor of the source.
        name:
          type: string
          description: Descriptive name of database. (Used only for reference or comment)
        created_at:
          type: string
          format: date-time
          description: Timestamp when the source was created.
        updated_at:
          type: string
          format: date-time
          description: Timestamp when the source was last updated.
        max_concurrent_transfers:
          type: integer
          description: Maximum number of concurrent transfers allowed for this source.
        max_concurrent_queries_per_transfer:
          type: integer
          description: >-
            Maximum number of concurrent queries allowed per transfer for this
            source.
      type: object
      required:
        - id
        - vendor
        - name
        - created_at
        - updated_at
        - max_concurrent_transfers
        - max_concurrent_queries_per_transfer
      unevaluatedProperties: false
    ErrorResponse:
      properties:
        status:
          type: string
          const: error
        message:
          type: string
        data:
          type: 'null'
      type: object
      required:
        - status
        - message
    AthenaSourceOptions:
      oneOf:
        - $ref: '#/components/schemas/AthenaSourceOptionsAWSIAMRole'
        - $ref: '#/components/schemas/AthenaSourceOptionsAWSAccessKeys'
      discriminator:
        mapping:
          aws_access_keys:
            $ref: '#/components/schemas/AthenaSourceOptionsAWSAccessKeys'
          aws_iam_role:
            $ref: '#/components/schemas/AthenaSourceOptionsAWSIAMRole'
        propertyName: auth_method
    MySQLSourceOptions:
      properties:
        host:
          type: string
          title: Host
          default: example.ab02cdefgxyz.us-east-1.rds.amazonaws.com
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 3306
        connection_database:
          type: string
          title: Database
        auth_method:
          type: string
          enum:
            - password_auth
          title: Auth method
          description: >-
            Placeholder value in case authentication options are added.
            Currently must be set to password_auth.
        password_auth:
          $ref: '#/components/schemas/PasswordAuth'
          description: Required details for username/password authentication.
        disable_ssl:
          type: boolean
          title: Disable SSL
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
      additionalProperties: false
      type: object
      required:
        - host
        - port
        - connection_database
        - auth_method
        - password_auth
    PostgresSourceOptions:
      properties:
        host:
          type: string
          title: Host
          description: Host address of the database.
          default: example.ab02cdefgxyz.us-east-1.rds.amazonaws.com
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 5432
        database:
          type: string
          title: Database
          description: Name of database.
        auth_method:
          type: string
          enum:
            - password_auth
          title: Auth method
          description: >-
            Placeholder value in case authentication options are added.
            Currently must be set to password_auth.
        password_auth:
          $ref: '#/components/schemas/PasswordAuth'
          description: Required details for username/password authentication.
        disable_ssl:
          type: boolean
          title: Disable SSL
        connection_timeout_in_seconds:
          type: integer
          minimum: 0
          title: Connection Timeout
          description: Duration to wait for successful connection to Postgres
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
      additionalProperties: false
      type: object
      required:
        - auth_method
        - password_auth
    BigQuerySourceOptions:
      oneOf:
        - $ref: '#/components/schemas/BigQuerySourceOptionsGCPServiceAccountRole'
        - $ref: >-
            #/components/schemas/BigQuerySourceOptionsFederatedGCPServiceAccountRole
        - $ref: '#/components/schemas/BigQuerySourceOptionsGCPServiceAccountKey'
      discriminator:
        mapping:
          federated_gcp_service_account_role:
            $ref: >-
              #/components/schemas/BigQuerySourceOptionsFederatedGCPServiceAccountRole
          gcp_service_account_key:
            $ref: '#/components/schemas/BigQuerySourceOptionsGCPServiceAccountKey'
          gcp_service_account_role:
            $ref: '#/components/schemas/BigQuerySourceOptionsGCPServiceAccountRole'
        propertyName: auth_method
    ClickhouseSourceOptions:
      oneOf:
        - properties:
            bucket_vendor:
              const: bucket_s3
            bucket_s3:
              $ref: '#/components/schemas/ClickhouseS3BucketParams'
              title: Staging bucket hosted on S3
              description: Required details about the S3 bucket used for staging data.
          required:
            - bucket_vendor
            - bucket_s3
          title: Staging bucket hosted on S3
        - properties:
            bucket_vendor:
              const: bucket_gcs
            bucket_gcs:
              $ref: '#/components/schemas/ClickhouseGCSBucketParams'
              title: Staging bucket hosted on GCS
              description: Required details about the GCS bucket used for staging data.
          required:
            - bucket_vendor
            - bucket_gcs
          title: Staging bucket hosted on GCS
        - properties:
            bucket_vendor:
              const: bucket_implicit
          required:
            - bucket_vendor
          title: Staging bucket implicit
      properties:
        host:
          type: string
          title: Host
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
        cluster:
          type: string
          title: Cluster
          description: >-
            Optional field to specify the Cluster to use in 'ON CLUSTER'
            statements.
        connection_database:
          type: string
          title: Connection database
        auth_method:
          type: string
          enum:
            - password_auth
          title: Auth method
          description: >-
            Placeholder value in case authentication options are added.
            Currently must be set to password_auth.
        password_auth:
          $ref: '#/components/schemas/PasswordAuth'
          description: Required details for username/password authentication.
        disable_ssl:
          type: boolean
          title: Disable SSL
      type: object
      required:
        - host
        - port
        - connection_database
        - auth_method
        - password_auth
      unevaluatedProperties: false
    DatabricksSourceOptions:
      allOf:
        - oneOf:
            - properties:
                auth_method:
                  const: access_token_auth
                access_token_auth:
                  $ref: '#/components/schemas/AccessToken'
                  description: Required details if authenticating using an access token.
              required:
                - auth_method
                - access_token_auth
            - properties:
                auth_method:
                  const: oauth_client_secret_auth
                oauth_client_secret_auth:
                  $ref: '#/components/schemas/OauthClientSecretAuth'
                  description: >-
                    Required details if authenticating using a OAuth client
                    secret.
              required:
                - auth_method
                - oauth_client_secret_auth
        - oneOf:
            - properties:
                metastore:
                  const: hive
                hive:
                  $ref: '#/components/schemas/DatabricksHiveOptions'
                  title: Hive Metastore
              required:
                - metastore
                - hive
              title: Hive Metastore
            - properties:
                metastore:
                  const: unity_catalog
              required:
                - metastore
              title: Unity Catalog Metastore
      properties:
        host:
          type: string
          title: Server hostname
          description: >-
            Server hostname of the SQL endpoint provisioned by the owner of the
            source.
          default: adb-1099123456789876.12.azuredatabricks.net
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 443
        catalog:
          type: string
          title: Catalog
          description: Name of catalog to write data to.
        http_path:
          type: string
          title: HTTP path
          description: >-
            HTTP path of the SQL endpoint provisioned by the owner of the
            source.
          default: /sql/1.0/endpoints/a98765ab4c3210a0
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
      type: object
      required:
        - host
        - port
        - catalog
        - http_path
      unevaluatedProperties: false
    MockSourceOptions:
      properties:
        database:
          type: string
          description: Mock database name.
        error_code:
          type: string
      additionalProperties: false
      type: object
      required:
        - database
    MongoDBSourceOptions:
      oneOf:
        - $ref: '#/components/schemas/MongoDBSourceOptionsAWSIAMRole'
        - $ref: '#/components/schemas/MongoDBSourceOptionsPasswordAuth'
      discriminator:
        mapping:
          aws_iam_role:
            $ref: '#/components/schemas/MongoDBSourceOptionsAWSIAMRole'
          password_auth:
            $ref: '#/components/schemas/MongoDBSourceOptionsPasswordAuth'
        propertyName: auth_method
    MotherDuckSourceOptions:
      properties:
        database:
          type: string
          title: Database
          description: MotherDuck database name.
        auth_method:
          type: string
          enum:
            - access_token_auth
          title: Auth method
          description: >-
            Placeholder value in case authentication options are added.
            Currently must be set to access_token_auth.
        access_token_auth:
          $ref: '#/components/schemas/AccessToken'
          description: The access token authentication object.
      additionalProperties: false
      type: object
      required:
        - database
        - auth_method
        - access_token_auth
    OracleSourceOptions:
      oneOf:
        - properties:
            disable_ssl:
              const: false
            ssl_options:
              $ref: '#/components/schemas/OracleSSLParams'
              description: Required details if using SSL connection.
          required:
            - ssl_options
          title: SSL Enabled
        - properties:
            disable_ssl:
              type: boolean
              title: Disable SSL
          required:
            - disable_ssl
          title: SSL Disabled
      properties:
        host:
          type: string
          title: Host
          description: Host address of the database.
          default: example.ab02cdefgxyz.us-east-1.rds.amazonaws.com
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 1521
        database:
          type: string
          title: Database
          description: Name of database provisioned by the owner of the source.
        auth_method:
          type: string
          enum:
            - password_auth
          title: Auth method
          description: >-
            Placeholder value in case authentication options are added.
            Currently must be set to password_auth.
        password_auth:
          $ref: '#/components/schemas/PasswordAuth'
          description: Required details for username/password authentication.
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
      type: object
      required:
        - auth_method
        - password_auth
      unevaluatedProperties: false
    RedshiftSourceOptions:
      oneOf:
        - $ref: '#/components/schemas/RedshiftSourceOptionsAWSAccessKeys'
        - $ref: '#/components/schemas/RedshiftSourceOptionsAWSIAMRole'
      discriminator:
        mapping:
          aws_access_keys:
            $ref: '#/components/schemas/RedshiftSourceOptionsAWSAccessKeys'
          aws_iam_role:
            $ref: '#/components/schemas/RedshiftSourceOptionsAWSIAMRole'
        propertyName: auth_method
    RedshiftServerlessSourceOptions:
      oneOf:
        - $ref: '#/components/schemas/RedshiftServerlessSourceOptionsAWSIAMRole'
        - $ref: '#/components/schemas/RedshiftServerlessSourceOptionsAWSAccessKeys'
      discriminator:
        mapping:
          aws_access_keys:
            $ref: '#/components/schemas/RedshiftServerlessSourceOptionsAWSAccessKeys'
          aws_iam_role:
            $ref: '#/components/schemas/RedshiftServerlessSourceOptionsAWSIAMRole'
        propertyName: auth_method
    SnowflakeSourceOptions:
      oneOf:
        - $ref: '#/components/schemas/SnowflakeSourceOptionsPasswordAuth'
        - $ref: '#/components/schemas/SnowflakeSourceOptionsPublicKeyAuth'
      discriminator:
        mapping:
          password_auth:
            $ref: '#/components/schemas/SnowflakeSourceOptionsPasswordAuth'
          public_key_auth:
            $ref: '#/components/schemas/SnowflakeSourceOptionsPublicKeyAuth'
        propertyName: auth_method
    SQLServerSourceOptions:
      properties:
        host:
          type: string
          title: Host
          description: Host address of the database.
          default: example.ab02cdefgxyz.us-east-1.rds.amazonaws.com
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 5432
        database:
          type: string
          title: Database
          description: Name of database.
        auth_method:
          type: string
          enum:
            - password_auth
          title: Auth method
          description: >-
            Placeholder value in case authentication options are added.
            Currently must be set to password_auth.
        password_auth:
          $ref: '#/components/schemas/PasswordAuth'
          description: Required details for username/password authentication.
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
        disable_ssl:
          type: boolean
          title: Disable SSL
      additionalProperties: false
      type: object
      required:
        - auth_method
        - password_auth
    AthenaSourceResource:
      oneOf:
        - $ref: '#/components/schemas/AthenaSourceResourceAWSIAMRole'
        - $ref: '#/components/schemas/AthenaSourceResourceAWSAccessKeys'
      discriminator:
        mapping:
          aws_access_keys:
            $ref: '#/components/schemas/AthenaSourceResourceAWSAccessKeys'
          aws_iam_role:
            $ref: '#/components/schemas/AthenaSourceResourceAWSIAMRole'
        propertyName: auth_method
    MySQLSourceResource:
      properties:
        host:
          type: string
        port:
          type: integer
        connection_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
        - auth_method
        - password_auth
        - use_ssh_tunnel
    PostgresSourceResource:
      properties:
        host:
          type: string
        port:
          type: integer
        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
        - database
        - auth_method
        - password_auth
        - use_ssh_tunnel
    BigQuerySourceResource:
      oneOf:
        - $ref: '#/components/schemas/BigQuerySourceResourceGCPServiceAccountRole'
        - $ref: >-
            #/components/schemas/BigQuerySourceResourceFederatedGCPServiceAccountRole
        - $ref: '#/components/schemas/BigQuerySourceResourceGCPServiceAccountKey'
      discriminator:
        mapping:
          federated_gcp_service_account_role:
            $ref: >-
              #/components/schemas/BigQuerySourceResourceFederatedGCPServiceAccountRole
          gcp_service_account_key:
            $ref: '#/components/schemas/BigQuerySourceResourceGCPServiceAccountKey'
          gcp_service_account_role:
            $ref: '#/components/schemas/BigQuerySourceResourceGCPServiceAccountRole'
        propertyName: auth_method
    ClickhouseSourceResource:
      properties:
        cluster:
          type: string
        host:
          type: string
        port:
          type: integer
        connection_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
        - auth_method
        - password_auth
        - bucket_vendor
    DatabricksSourceResource:
      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
        catalog:
          type: string
        http_path:
          type: string
        auth_method:
          type: string
          enum:
            - access_token_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
        - catalog
        - http_path
        - auth_method
        - use_ssh_tunnel
      unevaluatedProperties: false
    MockSourceResource:
      properties:
        database:
          type: string
      additionalProperties: false
      type: object
      required:
        - database
    MongoDBSourceResource:
      oneOf:
        - $ref: '#/components/schemas/MongoDBSourceResourceAWSIAMRole'
        - $ref: '#/components/schemas/MongoDBSourceResourcePasswordAuth'
      discriminator:
        mapping:
          aws_iam_role:
            $ref: '#/components/schemas/MongoDBSourceResourceAWSIAMRole'
          password_auth:
            $ref: '#/components/schemas/MongoDBSourceResourcePasswordAuth'
        propertyName: auth_method
    MotherDuckSourceResource:
      properties:
        database:
          type: string
        auth_method:
          type: string
      additionalProperties: false
      type: object
      required:
        - database
        - auth_method
    OracleSourceResource:
      properties:
        host:
          type: string
        port:
          type: integer
        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
        - database
        - auth_method
        - password_auth
        - use_ssh_tunnel
    RedshiftSourceResource:
      oneOf:
        - $ref: '#/components/schemas/RedshiftSourceResourceAWSAccessKeys'
        - $ref: '#/components/schemas/RedshiftSourceResourceAWSIAMRole'
      discriminator:
        mapping:
          aws_access_keys:
            $ref: '#/components/schemas/RedshiftSourceResourceAWSAccessKeys'
          aws_iam_role:
            $ref: '#/components/schemas/RedshiftSourceResourceAWSIAMRole'
        propertyName: auth_method
    RedshiftServerlessSourceResource:
      oneOf:
        - $ref: '#/components/schemas/RedshiftServerlessSourceResourceAWSAccessKeys'
        - $ref: '#/components/schemas/RedshiftServerlessSourceResourceAWSIAMRole'
      discriminator:
        mapping:
          aws_access_keys:
            $ref: '#/components/schemas/RedshiftServerlessSourceResourceAWSAccessKeys'
          aws_iam_role:
            $ref: '#/components/schemas/RedshiftServerlessSourceResourceAWSIAMRole'
        propertyName: auth_method
    SnowflakeSourceResource:
      properties:
        username:
          type: string
        host:
          type: string
        port:
          type: integer
        database:
          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
        - auth_method
    SQLServerResource:
      properties:
        host:
          type: string
        port:
          type: integer
        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
        - database
        - auth_method
        - password_auth
        - use_ssh_tunnel
    AthenaSourceOptionsAWSIAMRole:
      properties:
        workgroup:
          type: string
          title: Workgroup
          description: >-
            Optional field to specify the Athena Workgroup to use. Must be
            configured for Athena engine version 3. If left blank
        connection_database:
          type: string
          title: Query results location
          description: >-
            The name of the folder where the query results will be stored. This
            folder will be created within the S3 bucket.
        bucket_s3:
          $ref: '#/components/schemas/S3BucketParams'
          description: Required details about the S3 bucket used for staging data.
        auth_method:
          const: aws_iam_role
        aws_iam_role:
          $ref: '#/components/schemas/AWSIAMRole'
          title: Authenticate using an AWS IAM role (recommended)
      type: object
      required:
        - connection_database
        - bucket_s3
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    AthenaSourceOptionsAWSAccessKeys:
      properties:
        workgroup:
          type: string
          title: Workgroup
          description: >-
            Optional field to specify the Athena Workgroup to use. Must be
            configured for Athena engine version 3. If left blank
        connection_database:
          type: string
          title: Query results location
          description: >-
            The name of the folder where the query results will be stored. This
            folder will be created within the S3 bucket.
        bucket_s3:
          $ref: '#/components/schemas/S3BucketParams'
          description: Required details about the S3 bucket used for staging data.
        auth_method:
          const: aws_access_keys
        aws_access_keys:
          $ref: '#/components/schemas/AWSAccessKeys'
          title: Authenticate using AWS access keys
          description: Required details if authenticating using AWS access keys.
      type: object
      required:
        - connection_database
        - bucket_s3
        - auth_method
        - aws_access_keys
      title: Authenticate using AWS access keys
      unevaluatedProperties: false
    PasswordAuth:
      properties:
        username:
          type: string
          title: Username
        password:
          type: string
          title: Password
      additionalProperties: false
      type: object
      required:
        - username
        - password
    SSHTunnelParams:
      properties:
        ssh_tunnel_host:
          type: string
          title: SSH tunnel host
        ssh_tunnel_port:
          type: integer
          title: SSH tunnel port
          default: 22
        ssh_tunnel_username:
          type: string
          title: SSH tunnel username
        ssh_public_key:
          type: string
          enum:
            - primary_public_key
            - secondary_public_key
          title: SSH 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:
        - ssh_tunnel_host
        - ssh_tunnel_port
        - ssh_tunnel_username
    BigQuerySourceOptionsGCPServiceAccountRole:
      properties:
        project_id:
          $comment: >-
            BigQuery Project IDs must consist of 4-30 lowercase letters,
            numbers, and hyphens, and must begin with a lowercase letter and end
            with a lowercase letter or number.
          type: string
          pattern: ^[a-z][a-z0-9-]{2,28}[a-z0-9]$
          title: Project ID
        bucket_gcs:
          $ref: '#/components/schemas/BigQueryGCSBucketParams'
          description: Required details about the GCS bucket used for staging data.
        auth_method:
          const: gcp_service_account_role
        gcp_service_account_role:
          $ref: '#/components/schemas/GCPServiceAccountRole'
          title: Authenticate using a GCP service account (recommended)
          description: Required details if authenticating using a GCP service account role.
      type: object
      required:
        - project_id
        - bucket_gcs
        - auth_method
        - gcp_service_account_role
      title: Authenticate using a GCP service account (recommended)
      unevaluatedProperties: false
    BigQuerySourceOptionsFederatedGCPServiceAccountRole:
      properties:
        project_id:
          $comment: >-
            BigQuery Project IDs must consist of 4-30 lowercase letters,
            numbers, and hyphens, and must begin with a lowercase letter and end
            with a lowercase letter or number.
          type: string
          pattern: ^[a-z][a-z0-9-]{2,28}[a-z0-9]$
          title: Project ID
        bucket_gcs:
          $ref: '#/components/schemas/BigQueryGCSBucketParams'
          description: Required details about the GCS bucket used for staging data.
        auth_method:
          const: federated_gcp_service_account_role
        federated_gcp_service_account_role:
          $ref: '#/components/schemas/FederatedGCPServiceAccountRole'
          title: Authenticate using federation (only if self-hosting)
          description: >-
            Required details if authenticating using Workload Identity
            Federation.
      type: object
      required:
        - project_id
        - bucket_gcs
        - auth_method
        - federated_gcp_service_account_role
      title: Authenticate using federation (only if self-hosting)
      unevaluatedProperties: false
    BigQuerySourceOptionsGCPServiceAccountKey:
      properties:
        project_id:
          $comment: >-
            BigQuery Project IDs must consist of 4-30 lowercase letters,
            numbers, and hyphens, and must begin with a lowercase letter and end
            with a lowercase letter or number.
          type: string
          pattern: ^[a-z][a-z0-9-]{2,28}[a-z0-9]$
          title: Project ID
        bucket_gcs:
          $ref: '#/components/schemas/BigQueryGCSBucketParams'
          description: Required details about the GCS bucket used for staging data.
        auth_method:
          const: gcp_service_account_key
        gcp_service_account_key:
          $ref: '#/components/schemas/GCPServiceAccountKey'
          title: Authenticate using direct access
          description: Required details if authenticating using a GCP service account key.
      type: object
      required:
        - project_id
        - bucket_gcs
        - auth_method
        - gcp_service_account_key
      title: Authenticate using direct access
      unevaluatedProperties: false
    ClickhouseS3BucketParams:
      oneOf:
        - properties:
            bucket_auth_method:
              const: aws_access_keys
            aws_access_keys:
              $ref: '#/components/schemas/AWSAccessKeys'
              title: Authenticate using AWS access keys
              description: Required details if authenticating using AWS access keys.
          required:
            - bucket_auth_method
            - aws_access_keys
          title: Authenticate using AWS access keys
        - properties:
            bucket_auth_method:
              const: aws_iam_role
            aws_iam_role:
              $ref: '#/components/schemas/AWSIAMRole'
              title: Authenticate using an AWS IAM role (recommended)
              description: Required details if authenticating using AWS IAM role.
          required:
            - bucket_auth_method
            - aws_iam_role
          title: Authenticate using an AWS IAM role (recommended)
      properties:
        bucket_name:
          type: string
          title: Bucket name
        bucket_region:
          type: string
          title: S3 bucket region
          description: >-
            The region of the S3 bucket. Must be a valid [AWS
            region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)
      type: object
      required:
        - bucket_name
        - bucket_region
      unevaluatedProperties: false
    ClickhouseGCSBucketParams:
      properties:
        bucket_name:
          type: string
          title: Bucket name
        gcs_hmac_keys:
          $ref: '#/components/schemas/GCSAccessKeys'
          description: Required details for GCS HMAC key authentication.
      additionalProperties: false
      type: object
      required:
        - bucket_name
        - gcs_hmac_keys
    AccessToken:
      properties:
        access_token:
          type: string
          title: Personal access token
          description: The access token to use for the connection.
      additionalProperties: false
      type: object
      required:
        - access_token
    OauthClientSecretAuth:
      properties:
        client_id:
          type: string
          title: Client ID
          description: The Databricks-generated OAuth client ID.
        client_secret:
          type: string
          title: Client Secret
          description: The Databricks-generated OAuth client secret.
      additionalProperties: false
      type: object
      required:
        - client_id
        - client_secret
    DatabricksHiveOptions:
      oneOf:
        - properties:
            bucket_vendor:
              const: bucket_s3
            bucket_s3:
              $ref: '#/components/schemas/DatabricksS3BucketParams'
              description: Required details if using an S3 bucket for staging data.
          required:
            - bucket_vendor
            - bucket_s3
          title: bucket_s3
      properties: {}
      type: object
      unevaluatedProperties: false
    MongoDBSourceOptionsAWSIAMRole:
      properties:
        host:
          type: string
          title: Host
          default: clusterID.mongodb.net
        port:
          type: integer
          title: Port
          description: Optional. Leave empty If using Atlas.
          default: 27017
        authentication_database:
          type: string
          title: Database
          description: The MongoDB database to connect to.
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
        disable_ssl:
          type: boolean
          title: Disable SSL
        auth_method:
          const: aws_iam_role
        aws_iam_role:
          $ref: '#/components/schemas/AWSIAMRole'
          title: Authenticate using an AWS IAM role (recommended)
      type: object
      required:
        - host
        - authentication_database
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    MongoDBSourceOptionsPasswordAuth:
      properties:
        host:
          type: string
          title: Host
          default: clusterID.mongodb.net
        port:
          type: integer
          title: Port
          description: Optional. Leave empty If using Atlas.
          default: 27017
        authentication_database:
          type: string
          title: Database
          description: The MongoDB database to connect to.
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
        disable_ssl:
          type: boolean
          title: Disable SSL
        auth_method:
          const: password_auth
        password_auth:
          $ref: '#/components/schemas/PasswordAuth'
          title: Authenticate using a username and password
          description: Required details if authenticating with username/password.
      type: object
      required:
        - host
        - authentication_database
        - auth_method
        - password_auth
      title: Authenticate using a username and password
      unevaluatedProperties: false
    OracleSSLParams:
      properties:
        wallet:
          type: string
          title: Oracle Wallet
          description: Base64 encoded contents of Oracle Wallet.
      additionalProperties: false
      type: object
    RedshiftSourceOptionsAWSAccessKeys:
      properties:
        host:
          type: string
          title: Host
          description: Host address of database.
          default: cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 5439
        database:
          type: string
          title: Database
          description: Name of database.
        cluster:
          type: string
          title: Cluster
          description: Redshift Cluster identifier
        username:
          type: string
          title: Username
        bucket_s3:
          $ref: '#/components/schemas/RedshiftS3BucketParams'
          description: Required details about the S3 bucket used for staging data.
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
        auth_method:
          const: aws_access_keys
        aws_access_keys:
          $ref: '#/components/schemas/RedshiftAccessKeys'
          title: Authenticate using AWS access keys
          description: Required details for username/password authentication.
      type: object
      required:
        - host
        - port
        - database
        - bucket_s3
        - auth_method
        - aws_access_keys
      title: Authenticate using AWS access keys
      unevaluatedProperties: false
    RedshiftSourceOptionsAWSIAMRole:
      properties:
        host:
          type: string
          title: Host
          description: Host address of database.
          default: cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 5439
        database:
          type: string
          title: Database
          description: Name of database.
        cluster:
          type: string
          title: Cluster
          description: Redshift Cluster identifier
        username:
          type: string
          title: Username
        bucket_s3:
          $ref: '#/components/schemas/RedshiftS3BucketParams'
          description: Required details about the S3 bucket used for staging data.
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
        auth_method:
          const: aws_iam_role
        aws_iam_role:
          $ref: '#/components/schemas/AWSIAMRole'
          title: Authenticate using an AWS IAM role (recommended)
          description: Required details if authenticating using an AWS IAM role.
      type: object
      required:
        - host
        - port
        - database
        - bucket_s3
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    RedshiftServerlessSourceOptionsAWSIAMRole:
      properties:
        workgroup:
          type: string
          title: Workgroup
        host:
          type: string
          title: Host
          description: Workgroup endpoint
          default: workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 5439
        database:
          type: string
          title: Database
          description: Name of target database.
        bucket_s3:
          $ref: '#/components/schemas/RedshiftS3BucketParams'
          description: Required details about the S3 bucket used for staging data.
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
        auth_method:
          const: aws_iam_role
        aws_iam_role:
          $ref: '#/components/schemas/AWSIAMRole'
          title: Authenticate using an AWS IAM role (recommended)
          description: Required details if authenticating using an AWS IAM role.
      type: object
      required:
        - workgroup
        - host
        - port
        - database
        - bucket_s3
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    RedshiftServerlessSourceOptionsAWSAccessKeys:
      properties:
        workgroup:
          type: string
          title: Workgroup
        host:
          type: string
          title: Host
          description: Workgroup endpoint
          default: workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 5439
        database:
          type: string
          title: Database
          description: Name of target database.
        bucket_s3:
          $ref: '#/components/schemas/RedshiftS3BucketParams'
          description: Required details about the S3 bucket used for staging data.
        use_ssh_tunnel:
          type: boolean
          description: Whether to use an SSH tunnel for the connection.
        ssh_tunnel:
          $ref: '#/components/schemas/SSHTunnelParams'
          description: Required details if using SSH tunneling.
        auth_method:
          const: aws_access_keys
        aws_access_keys:
          $ref: '#/components/schemas/AWSAccessKeys'
          title: Authenticate using AWS access keys
          description: Required details if authenticating using AWS access keys.
      type: object
      required:
        - workgroup
        - host
        - port
        - database
        - bucket_s3
        - auth_method
        - aws_access_keys
      title: Authenticate using AWS access keys
      unevaluatedProperties: false
    SnowflakeSourceOptionsPasswordAuth:
      properties:
        host:
          type: string
          pattern: .*\.snowflakecomputing.com$
          title: Account host
          description: Host address of database.
          default: db54321.us-central1.gcp.snowflakecomputing.com
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 443
        database:
          type: string
          title: Database
          description: Name of database.
        username:
          type: string
          title: Username
          description: The name of the Snowflake user.
        auth_method:
          const: password_auth
        password_auth:
          $ref: '#/components/schemas/PasswordOnlyAuth'
          title: Authenticate using a username and password
          description: Required details for username/password authentication.
      type: object
      required:
        - host
        - port
        - database
        - username
        - auth_method
        - password_auth
      title: Authenticate using a username and password
      unevaluatedProperties: false
    SnowflakeSourceOptionsPublicKeyAuth:
      properties:
        host:
          type: string
          pattern: .*\.snowflakecomputing.com$
          title: Account host
          description: Host address of database.
          default: db54321.us-central1.gcp.snowflakecomputing.com
        port:
          type: integer
          exclusiveMinimum: 0
          title: Port
          default: 443
        database:
          type: string
          title: Database
          description: Name of database.
        username:
          type: string
          title: Username
          description: The name of the Snowflake user.
        auth_method:
          const: public_key_auth
        public_key_auth:
          $ref: '#/components/schemas/PublicKeyAuth'
          description: Required details for public key authentication.
      type: object
      required:
        - host
        - port
        - database
        - username
        - auth_method
        - public_key_auth
      unevaluatedProperties: false
    AthenaSourceResourceAWSIAMRole:
      properties:
        workgroup:
          type: string
        connection_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
        - bucket_s3
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    AthenaSourceResourceAWSAccessKeys:
      properties:
        workgroup:
          type: string
        connection_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
        - 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
    BigQuerySourceResourceGCPServiceAccountRole:
      properties:
        project_id:
          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
        - bucket_gcs
        - auth_method
        - gcp_service_account_role
      title: Authenticate using a GCP service account (recommended)
      unevaluatedProperties: false
    BigQuerySourceResourceFederatedGCPServiceAccountRole:
      properties:
        project_id:
          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
        - bucket_gcs
        - auth_method
        - federated_gcp_service_account_role
      title: Authenticate using federation (only if self-hosting)
      unevaluatedProperties: false
    BigQuerySourceResourceGCPServiceAccountKey:
      properties:
        project_id:
          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
        - 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
    MongoDBSourceResourceAWSIAMRole:
      properties:
        host:
          type: string
        port:
          type: integer
        authentication_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
        - use_ssh_tunnel
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    MongoDBSourceResourcePasswordAuth:
      properties:
        host:
          type: string
        port:
          type: integer
        authentication_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
        - use_ssh_tunnel
        - auth_method
        - password_auth
      title: Authenticate using a username and password
      unevaluatedProperties: false
    RedshiftSourceResourceAWSAccessKeys:
      properties:
        host:
          type: string
        port:
          type: integer
        database:
          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
        - cluster
        - username
        - bucket_s3
        - use_ssh_tunnel
        - auth_method
        - aws_access_keys
      title: Authenticate using AWS access keys
      unevaluatedProperties: false
    RedshiftSourceResourceAWSIAMRole:
      properties:
        host:
          type: string
        port:
          type: integer
        database:
          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
        - cluster
        - username
        - bucket_s3
        - use_ssh_tunnel
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    RedshiftServerlessSourceResourceAWSAccessKeys:
      properties:
        workgroup:
          type: string
        host:
          type: string
        port:
          type: integer
        database:
          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
        - bucket_s3
        - auth_method
        - aws_access_keys
      title: Authenticate using AWS access keys
      unevaluatedProperties: false
    RedshiftServerlessSourceResourceAWSIAMRole:
      properties:
        workgroup:
          type: string
        host:
          type: string
        port:
          type: integer
        database:
          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
        - bucket_s3
        - auth_method
        - aws_iam_role
      title: Authenticate using an AWS IAM role (recommended)
      unevaluatedProperties: false
    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
    S3BucketParams:
      properties:
        bucket_name:
          type: string
          title: S3 bucket name
        bucket_region:
          type: string
          title: S3 bucket region
          description: >-
            The region of the S3 bucket. Must be a valid [AWS
            region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)
      additionalProperties: false
      type: object
      required:
        - bucket_name
        - bucket_region
    AWSIAMRole:
      properties:
        aws_iam_role_arn:
          type: string
          title: IAM role ARN
          default: arn:aws:iam::123456789012:role/service-role/role-name
      additionalProperties: false
      type: object
      required:
        - aws_iam_role_arn
    AWSAccessKeys:
      properties:
        access_id:
          type: string
          title: Bucket access ID
        secret_key:
          type: string
          title: Bucket secret key
      additionalProperties: false
      type: object
      required:
        - access_id
        - secret_key
    BigQueryGCSBucketParams:
      properties:
        bucket_name:
          type: string
          title: GCS bucket name
        bucket_region:
          type: string
          title: GCS bucket region
          description: >-
            The region of the staging GCS bucket. Must be a valid GCS [bucket
            location](https://cloud.google.com/storage/docs/locations)
      additionalProperties: false
      type: object
      required:
        - bucket_name
        - bucket_region
    GCPServiceAccountRole:
      properties:
        service_account_email:
          type: string
          pattern: ^.*gserviceaccount.com$
          format: email
          title: Service account email
          default: service-account-name@project-id.iam.gserviceaccount.com
      additionalProperties: false
      type: object
      required:
        - service_account_email
    FederatedGCPServiceAccountRole:
      properties:
        service_account_email:
          type: string
          pattern: ^.*gserviceaccount.com$
          format: email
          title: Service account email
          default: service-account-name@project-id.iam.gserviceaccount.com
        workload_identity_federation_metadata:
          $ref: '#/components/schemas/GcpExternalAccountMetadata'
          title: Workload identity metadata
      additionalProperties: false
      type: object
      required:
        - service_account_email
    GCPServiceAccountKey:
      properties:
        service_account_email:
          type: string
          pattern: ^.*gserviceaccount.com$
          format: email
          title: Service account email
          default: service-account-name@project-id.iam.gserviceaccount.com
        service_account_key:
          title: JSON Token
          description: >-
            The credentials (JSON) that will be used. Create a service account
            just for this use.
      additionalProperties: false
      type: object
      required:
        - service_account_email
        - service_account_key
    GCSAccessKeys:
      properties:
        access_key:
          type: string
          title: Bucket access ID
          description: The access key to use for authentication.
        secret:
          type: string
          title: Bucket secret key
          description: The secret to use for authentication.
      additionalProperties: false
      type: object
      required:
        - access_key
        - secret
    DatabricksS3BucketParams:
      oneOf:
        - properties:
            aws_access_keys:
              $ref: '#/components/schemas/AWSAccessKeys'
              description: Required details if authenticating using AWS access keys.
          required:
            - aws_access_keys
          title: aws_access_keys
      properties:
        bucket_name:
          type: string
          title: S3 bucket name
        bucket_region:
          type: string
          title: S3 bucket region
          description: >-
            The region of the S3 bucket. Must be a valid [AWS
            region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)
      type: object
      required:
        - bucket_name
        - bucket_region
      unevaluatedProperties: false
    RedshiftS3BucketParams:
      properties:
        bucket_name:
          type: string
          title: S3 bucket name
        bucket_region:
          type: string
          title: S3 bucket region
          description: >-
            The region of the S3 bucket. Must be a valid [AWS
            region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)
      additionalProperties: false
      type: object
      required:
        - bucket_name
        - bucket_region
    RedshiftAccessKeys:
      properties:
        password:
          type: string
          title: Password
        access_id:
          type: string
          title: Bucket access ID
        secret_key:
          type: string
          title: Bucket secret key
      additionalProperties: false
      type: object
      required:
        - password
        - access_id
        - secret_key
    PasswordOnlyAuth:
      properties:
        password:
          type: string
          title: Password
      additionalProperties: false
      type: object
      required:
        - password
    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
    AWSAccessKeysResource:
      properties:
        access_id:
          type: string
      additionalProperties: false
      type: object
      required:
        - access_id
    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
    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
    GcpExternalAccountMetadata:
      properties:
        type:
          type: string
        audience:
          type: string
        subject_token_type:
          type: string
        service_account_impersonation_url:
          type: string
        token_url:
          type: string
        credential_source:
          $ref: '#/components/schemas/CredentialSource'
      type: object
      required:
        - type
        - audience
        - subject_token_type
        - service_account_impersonation_url
        - token_url
        - credential_source
    CredentialSource:
      properties:
        environment_id:
          type: string
        region_url:
          type: string
        url:
          type: string
        regional_cred_verification_url:
          type: string
      additionalProperties: false
      type: object
      required:
        - environment_id
        - region_url
        - url
        - regional_cred_verification_url
  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

````