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