openapi: 3.2.0 info: title: First class Data Warehouse Integration Guess API version: 1.0.0 servers: - url: https://dwh-integration-api.treasuredata.com description: Production AWS server - url: https://dwh-integration-api.eu01.treasuredata.com description: Production EU01 server - url: https://dwh-integration-api.ap02.treasuredata.com description: Production AP02 server - url: https://dwh-integration-api.ap03.treasuredata.com description: Production AP03 server - url: https://dwh-integration-api.treasuredata.co.jp description: Production AWS Tokyo server tags: - name: Guess paths: /v1/guess: post: summary: Guess DWH Integration configuration description: 'Perform Guess operation for complete DWH Integration configuration by providing basic_configs. ' security: - apiKey: [] requestBody: required: true content: application/json: schema: type: object properties: basic_configs: $ref: '#/components/schemas/BasicConfigs' additionalProperties: true example: basic_configs: td_authentication_id: 11 type: snowflake warehouse: test_wh db: database schema: test responses: '200': description: Guess Successful content: application/json: schema: $ref: '#/components/schemas/GuessResult' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' tags: - Guess components: responses: '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: error: code: 404 title: Not Found message: No route matches [GET] "/abc". '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: error: code: 400 title: Parameter Error message: Data validation error, verify fields and try again. '401': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: error: code: 401 title: API Key isn't set on the request message: API Key isn't set on the request '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: error: code: 500 title: Internal Server Error message: LINK, accepted HTTP methods are OPTIONS, GET, HEAD, POST, PUT, DELETE and PATCH. '403': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: error: code: 401 title: Forbidden message: Access to the requested resource is forbidden. You do not have the necessary permissions. schemas: BasicConfigs: type: object description: The basic configs of the DWH Integration. discriminator: propertyName: type mapping: snowflake: '#/components/schemas/basic' databricks: '#/components/schemas/basic-2' oneOf: - $ref: '#/components/schemas/snowflake/properties/basic' - $ref: '#/components/schemas/databricks/properties/basic' Advanced: type: object properties: type: type: string description: Connector type, e.g. snowflake, redshift Basic: type: object properties: type: type: string description: Connector type td_authentication_id: description: The existing Connector Authentication ID type: string required: - type - td_authentication_id snowflake: type: object title: Snowflake properties: basic: type: object description: The parameters for the Snowflake connector title: Snowflake basic config allOf: - $ref: '#/components/schemas/Basic' - properties: role: title: Role Name type: string description: Specify the role name, Leave blank to use default role. warehouse: title: Snowflake Warehouse description: The Snowflake data Warehouse to use for the connection, e.g. "COMPUTE_WH" type: string db: title: Snowflake Database type: string schema: title: Schema, e.g. "PUBLIC" description: The schema to use for the connection type: string incremental: title: Incremental Loading? description: Enable incremental loading for this connector type: boolean default: false required: - warehouse - db - schema advanced: type: object description: The parameters for the Snowflake connector allOf: - $ref: '#/components/schemas/Advanced' - properties: source_type: title: Source Type description: Specify the import type, either via a table/view or via a query. type: string enum: - table_view - query default: table_views query: title: SELECT Query description: 'Use with (source_type: query) to specify a custom query for importng.' type: string select: title: Columns to return description: 'Comma-separated list of columns to SELECT. Use with (source_type: table_view) to query for columns' type: string default: '*' table: title: Source Table/View description: 'The table/view to import from. Use with (source_type: table_view)' type: string where: title: WHERE Condition description: Specify a WHERE condition to filter the data type: string order_by: title: ORDER By Columns description: Specify the columns to order the data by type: string incremental: title: Incremental Loading? description: Enable incremental loading for this connector? type: boolean default: false incremental_columns: title: Incremental Column(s) description: "List of column(s) to incremental on. Only timestamp and numeric columns are accepted. \nIf not set, it will try to find and use the primary keys\n" type: array items: type: string invalid_value_option: title: Invalid Value Handling Mode description: Specify how to handle invalid data values. type: string enum: - fail_job - insert_null - ignore_row default: fail_job ErrorResponse: type: object properties: error: $ref: '#/components/schemas/Error' AdvancedConfigs: type: array description: "The DWH Integration advanced configs. The configs contain array of \nof table configs which combine with the basic configs will be used to create Connector Bulkload Session.\n" items: type: object properties: target_table: description: The name of the TD table to import data into. type: string config: title: Advanced Config description: 'The configuration which will merge with the basic_configs to form a complete Connector configuration for Bulkload job. Some of the config from the basic_configs can declare here to override the basic_configs. ' type: object discriminator: propertyName: type mapping: snowflake: '#/components/schemas/advanced' databricks: '#/components/schemas/advanced-2' oneOf: - $ref: '#/components/schemas/snowflake/properties/advanced' - $ref: '#/components/schemas/databricks/properties/advanced' databricks: type: object title: Databricks properties: basic: type: object description: The parameters for the Databricks connector title: Databricks basic config allOf: - $ref: '#/components/schemas/Basic' - properties: catalog: title: Databricks Catalog type: string schema: title: Schema, e.g. "default" description: The schema to use for the connection. If not specified, default schema will be used. type: string incremental: title: Incremental Loading? description: Enable incremental loading for this connector. If this is enabled, you must specify the incremental_columns or Bulkload job will fail. type: boolean default: false required: - catalog advanced: type: object description: The parameters for the Databricks connector allOf: - $ref: '#/components/schemas/Advanced' - properties: use_custom_query: title: Use custom SELECT query? description: If you need more than a simple SELECT (columns) FROM table WHERE (condition). type: boolean default: false query: title: SELECT Query description: 'Use with (use_custom_query: true) to specify a custom query for importing.' type: string select: title: Columns to return description: 'Comma-separated list of columns to ingest. Use with (use_custom_query: false) to query for columns.' type: string default: '*' table: title: Source Table/View description: 'The table/view to import from. Use with (use_custom_query: false)' type: string where: title: Filter Conditions description: 'Specify a WHERE condition to filter the data. Use with (use_custom_query: false)' type: string order_by: title: ORDER By Columns description: 'Specify the columns to order the data by. Use with (use_custom_query: false)' type: string incremental: title: Incremental Loading? description: Enable incremental loading for this connector? type: boolean default: false incremental_columns: title: Incremental Column(s) description: "List of column(s) to incremental on. Only timestamp and numeric columns are accepted. \nIf not set, it will try to find and use the primary keys\n" type: array items: type: string invalid_value_option: title: Invalid Value Handling Mode description: Specify how to handle invalid data values. type: string enum: - fail_job - insert_null - ignore_row default: fail_job last_record: title: Start after (values) description: Values for columns used in incremental loading. Ignores records with column values less than this type: array enum: - string - number - boolean - 'null' Error: type: object properties: code: type: integer description: The HTTP status code title: type: string description: The error title message: description: The error message anyOf: - type: string - type: object additionalProperties: true detail: description: Any extra infomation of the error type: object additionalProperties: true additionalProperties: false GuessResult: type: object description: The result of Guess operation properties: basic_configs: $ref: '#/components/schemas/BasicConfigs' advanced_configs: $ref: '#/components/schemas/AdvancedConfigs' additionalProperties: false securitySchemes: apiKey: type: apiKey in: header name: Authorization description: A dedicated DWH Integration user api key. A prefix `TD1 ` is needed. For example, `TD1 xxx`.