openapi: 3.0.0 info: title: ThoughtSpot Public REST 10.1.0.cl Connection Configurations API version: '2.0' servers: - url: '{base-url}' variables: base-url: default: https://localhost:443 security: - bearerAuth: [] tags: - name: Connection Configurations paths: /api/rest/2.0/connection-configurations/search: post: operationId: connectionConfigurationSearch description: "\n Version: 10.12.0.cl or later\n\nGets connection configuration objects.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n#### Usage guidelines\n* To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body.\n* To fetch details of a configuration object, specify the configuration object name or GUID.\n\n\n\n\n#### Endpoint URL\n" tags: - Connection Configurations requestBody: content: application/json: schema: $ref: '#/components/schemas/ConnectionConfigurationSearchRequest' required: true parameters: [] responses: '200': description: Configuration fetched successfully. content: application/json: schema: type: array items: $ref: '#/components/schemas/ConnectionConfigurationResponse' '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /api/rest/2.0/connection-configurations/create: post: operationId: createConnectionConfiguration description: "\n Version: 10.12.0.cl or later\n\nCreates an additional configuration to an existing connection to a data warehouse. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n#### Usage guidelines\n\n * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes:\n ```\n {\n \"user\":\"DEV_USER\",\n \"password\":\"TestConn123\",\n \"role\":\"DEV\",\n \"warehouse\":\"DEV_WH\"\n }\n ```\n\n* If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field.\n* If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field.\n* If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields.\n\n#### Parameterized Connection Support\nFor parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized.\n\n\n\n\n\n#### Endpoint URL\n" tags: - Connection Configurations requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateConnectionConfigurationRequest' required: true parameters: [] responses: '200': description: Connection configuration successfully created. content: application/json: schema: $ref: '#/components/schemas/ConnectionConfigurationResponse' '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /api/rest/2.0/connection-configurations/delete: post: operationId: deleteConnectionConfiguration description: "\n Version: 10.12.0.cl or later\n\nDeletes connection configuration objects.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n\n\n\n#### Endpoint URL\n" tags: - Connection Configurations requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteConnectionConfigurationRequest' required: true parameters: [] responses: '204': description: Connection Configurations successfully deleted. '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /api/rest/2.0/connection-configurations/{configuration_identifier}/update: post: operationId: updateConnectionConfiguration description: "\n Version: 10.12.0.cl or later\n\nUpdates a connection configuration object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n#### Supported operations\nThis API endpoint lets you perform the following operations in a single API request:\n\n * Edit the name or description of the configuration\n * Edit the configuration properties\n * Edit the `policy_type`\n * Edit the type of authentication\n * Enable or disable a configuration\n\n#### Parameterized Connection Support\nFor parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized.\n\n **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`.\n\n\n\n\n#### Endpoint URL\n" tags: - Connection Configurations requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateConnectionConfigurationRequest' required: true parameters: - in: path name: configuration_identifier required: true schema: type: string description: Unique ID or name of the configuration. responses: '204': description: Connection configuration successfully updated. '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: UpdateConnectionConfigurationRequest: type: object properties: connection_identifier: description: Unique ID or name of the connection. type: string name: description: Name of the configuration to update. type: string description: description: Description of the configuration. type: string same_as_parent: description: 'Specifies whether the connection configuration should inherit all properties and authentication type from its parent connection. This attribute is only applicable to parameterized connections. When set to true, the configuration uses only the connection properties and authentication type inherited from the parent.
Version: 26.2.0.cl or later' default: false type: boolean nullable: true policy_process_options: description: 'This attribute is only applicable to parameterized connections. Ensure that the policy is set to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later' allOf: - $ref: '#/components/schemas/PolicyProcessOptionsInput' authentication_type: description: Type of authentication. type: string enum: - SERVICE_ACCOUNT - OAUTH - OAUTH_WITH_SERVICE_PRINCIPAL - EXTOAUTH - KEY_PAIR - EXTOAUTH_WITH_PKCE - OAUTH_WITH_PKCE - PERSONAL_ACCESS_TOKEN - OAUTH_CLIENT_CREDENTIALS - OAUTH_CLIENT_CREDENTIALS_WITH_X509 configuration: description: Configuration properties in JSON. type: object policy_type: description: Type of policy. type: string enum: - NO_POLICY - PRINCIPALS - PROCESSES policy_principals: description: Unique ID or name of the User and User Groups. type: array items: type: string policy_processes: description: Action that the query performed on the data warehouse, such as SAGE_INDEXING, ROW_COUNT_STATS, and SCHEDULED_LIVEBOARDS. type: array items: type: string enum: - SAGE_INDEXING - ROW_COUNT_STATS - SCHEDULED_LIVEBOARDS disable: description: Indicates whether the configuration enable/disable. default: false type: boolean nullable: true required: - connection_identifier ConnectionConfigurationResponse: type: object properties: configuration_identifier: type: string nullable: true name: type: string nullable: true description: type: string nullable: true configuration: type: object nullable: true policy_principals: type: array items: $ref: '#/components/schemas/UserPrincipal' nullable: true policy_processes: type: array items: type: string enum: - SAGE_INDEXING - ROW_COUNT_STATS - SCHEDULED_LIVEBOARDS nullable: true disabled: type: boolean nullable: true data_warehouse_type: type: string enum: - SNOWFLAKE - AMAZON_REDSHIFT - GOOGLE_BIGQUERY - AZURE_SYNAPSE - TERADATA - SAP_HANA - STARBURST - ORACLE_ADW - DATABRICKS - DENODO - DREMIO - TRINO - PRESTO - POSTGRES - SQLSERVER - MYSQL - GENERIC_JDBC - AMAZON_RDS_POSTGRESQL - AMAZON_AURORA_POSTGRESQL - AMAZON_RDS_MYSQL - AMAZON_AURORA_MYSQL - LOOKER - AMAZON_ATHENA - SINGLESTORE - GCP_SQLSERVER - GCP_ALLOYDB_POSTGRESQL - GCP_POSTGRESQL - GCP_MYSQL - MODE - GOOGLE_SHEETS - FALCON - FALCON_ONPREM - CLICKHOUSE - IOMETE nullable: true policy_type: type: string enum: - NO_POLICY - PRINCIPALS - PROCESSES nullable: true same_as_parent: type: boolean nullable: true policy_process_options: $ref: '#/components/schemas/PolicyProcessOptions' nullable: true PolicyProcessOptionsInput: type: object properties: impersonate_user: type: string nullable: true DeleteConnectionConfigurationRequest: type: object properties: configuration_identifier: description: Unique ID or name of the configuration. type: string connection_identifier: description: Unique ID or name of the connection. type: string required: - configuration_identifier - connection_identifier ErrorResponse: type: object properties: error: type: object nullable: true PolicyProcessOptions: type: object properties: impersonate_user: type: string nullable: true CreateConnectionConfigurationRequest: type: object properties: name: description: Unique name for the configuration. type: string description: description: Description of the configuration. type: string connection_identifier: description: Unique ID or name of the connection. type: string same_as_parent: description: 'Specifies whether the connection configuration should inherit all properties and authentication type from its parent connection. This attribute is only applicable to parameterized connections. When set to true, the configuration uses only the connection properties and authentication type inherited from the parent.
Version: 26.2.0.cl or later' default: false type: boolean nullable: true policy_process_options: description: 'This attribute is only applicable to parameterized connections. Ensure that the policy is set to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later' allOf: - $ref: '#/components/schemas/PolicyProcessOptionsInput' authentication_type: description: Type of authentication used for the connection. default: SERVICE_ACCOUNT type: string enum: - SERVICE_ACCOUNT - KEY_PAIR - PERSONAL_ACCESS_TOKEN - OAUTH_WITH_SERVICE_PRINCIPAL - OAUTH_CLIENT_CREDENTIALS - OAUTH_CLIENT_CREDENTIALS_WITH_X509 configuration: description: Configuration properties in JSON. type: object policy_type: description: Type of policy. default: NO_POLICY type: string enum: - NO_POLICY - PRINCIPALS - PROCESSES policy_principals: description: Unique ID or name of the User and User Groups. type: array items: type: string policy_processes: description: Action that the query performed on the data warehouse, such as SAGE_INDEXING, ROW_COUNT_STATS, and SCHEDULED_LIVEBOARDS. type: array items: type: string enum: - SAGE_INDEXING - ROW_COUNT_STATS - SCHEDULED_LIVEBOARDS required: - name - connection_identifier - configuration ConnectionConfigurationSearchRequest: type: object properties: connection_identifier: description: Unique ID or name of the connection. type: string configuration_identifier: description: Unique ID or name of the configuration. type: string policy_type: description: Type of policy. type: string enum: - NO_POLICY - PRINCIPALS - PROCESSES required: - connection_identifier UserPrincipal: type: object properties: id: type: string nullable: true name: type: string nullable: true type: type: string nullable: true securitySchemes: bearerAuth: type: http scheme: bearer x-roles: - name: 26.2.0.cl id: 26.2.0.cl tags: - 26.2.0.cl description: Roles for version 26.2.0.cl - name: 10.4.0.cl id: 10.4.0.cl tags: - 10.4.0.cl description: Roles for version 10.4.0.cl - name: 26.7.0.cl id: 26.7.0.cl tags: - 26.7.0.cl description: Roles for version 26.7.0.cl - name: 26.8.0.cl id: 26.8.0.cl tags: - 26.8.0.cl description: Roles for version 26.8.0.cl - name: 26.6.0.cl id: 26.6.0.cl tags: - 26.6.0.cl description: Roles for version 26.6.0.cl - name: 10.15.0.cl id: 10.15.0.cl tags: - 10.15.0.cl description: Roles for version 10.15.0.cl - name: 10.13.0.cl id: 10.13.0.cl tags: - 10.13.0.cl description: Roles for version 10.13.0.cl - name: 26.9.0.cl id: 26.9.0.cl tags: - 26.9.0.cl description: Roles for version 26.9.0.cl - name: 10.7.0.cl id: 10.7.0.cl tags: - 10.7.0.cl description: Roles for version 10.7.0.cl - name: 26.5.0.cl id: 26.5.0.cl tags: - 26.5.0.cl description: Roles for version 26.5.0.cl - name: 9.0.0.cl id: 9.0.0.cl tags: - 9.0.0.cl description: Roles for version 9.0.0.cl - name: 9.4.0.cl id: 9.4.0.cl tags: - 9.4.0.cl description: Roles for version 9.4.0.cl - name: 9.12.0.cl id: 9.12.0.cl tags: - 9.12.0.cl description: Roles for version 9.12.0.cl - name: 26.4.0.cl id: 26.4.0.cl tags: - 26.4.0.cl description: Roles for version 26.4.0.cl - name: 10.12.0.cl id: 10.12.0.cl tags: - 10.12.0.cl description: Roles for version 10.12.0.cl - name: 9.2.0.cl id: 9.2.0.cl tags: - 9.2.0.cl description: Roles for version 9.2.0.cl - name: 9.9.0.cl id: 9.9.0.cl tags: - 9.9.0.cl description: Roles for version 9.9.0.cl - name: 9.6.0.cl id: 9.6.0.cl tags: - 9.6.0.cl description: Roles for version 9.6.0.cl - name: 10.10.0.cl id: 10.10.0.cl tags: - 10.10.0.cl description: Roles for version 10.10.0.cl - name: 10.6.0.cl id: 10.6.0.cl tags: - 10.6.0.cl description: Roles for version 10.6.0.cl - name: 10.3.0.cl id: 10.3.0.cl tags: - 10.3.0.cl description: Roles for version 10.3.0.cl - name: 10.1.0.cl id: 10.1.0.cl tags: - 10.1.0.cl description: Roles for version 10.1.0.cl - name: 10.9.0.cl id: 10.9.0.cl tags: - 10.9.0.cl description: Roles for version 10.9.0.cl - name: 10.8.0.cl id: 10.8.0.cl tags: - 10.8.0.cl description: Roles for version 10.8.0.cl - name: 9.5.0.cl id: 9.5.0.cl tags: - 9.5.0.cl description: Roles for version 9.5.0.cl - name: 26.3.0.cl id: 26.3.0.cl tags: - 26.3.0.cl description: Roles for version 26.3.0.cl - name: 10.14.0.cl id: 10.14.0.cl tags: - 10.14.0.cl description: Roles for version 10.14.0.cl - name: 9.7.0.cl id: 9.7.0.cl tags: - 9.7.0.cl description: Roles for version 9.7.0.cl