ThoughtSpot Connection Configurations API

The Connection Configurations API from ThoughtSpot — 4 operation(s) for connection configurations.

Documentation

Specifications

Other Resources

OpenAPI Specification

thoughtspot-connection-configurations-api-openapi.yml Raw ↑
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 <span class=\"since-beta-tag\">Version: 10.12.0.cl or later</span>\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 <span class=\"since-beta-tag\">Version: 10.12.0.cl or later</span>\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 <span class=\"since-beta-tag\">Version: 10.12.0.cl or later</span>\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 <span class=\"since-beta-tag\">Version: 10.12.0.cl or later</span>\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. <br/>  <span class="since-beta-tag">Version: 26.2.0.cl or later</span>'
          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. <br/>  <span class="since-beta-tag">Version: 26.2.0.cl or later</span>'
          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. <br/>  <span class="since-beta-tag">Version: 26.2.0.cl or later</span>'
          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. <br/>  <span class="since-beta-tag">Version: 26.2.0.cl or later</span>'
          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