openapi: 3.0.0 info: title: ThoughtSpot Public REST 10.1.0.cl 10.14.0.cl API version: '2.0' servers: - url: '{base-url}' variables: base-url: default: https://localhost:443 security: - bearerAuth: [] tags: - name: 10.14.0.cl paths: /api/rest/2.0/system/preferences/communication-channels/configure: post: operationId: configureCommunicationChannelPreferences description: ' Beta Version: 10.14.0.cl or later Configure communication channel preferences. - Use `cluster_preferences` to update the default preferences for your ThoughtSpot application instance. - If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to specify Org-specific preferences that override the defaults. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action. #### Endpoint URL ' tags: - 10.14.0.cl requestBody: content: application/json: schema: $ref: '#/components/schemas/ConfigureCommunicationChannelPreferencesRequest' required: true parameters: [] responses: '204': description: Communication channel preferences successfully updated. '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalid_request: summary: Invalid request value: error: message: code: 10002 incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 debug: RESET operation requires reset_events to be specified. '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unauthorized_access: summary: Unauthorized access value: error: message: code: 10097 incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 debug: Authentication required to configure communication channel preferences. '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden_access: summary: Forbidden access value: error: message: code: 10023 incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 debug: ADMINISTRATION privilege required to configure cluster-level communication channel preferences. '500': description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unexpected_error: summary: Unexpected error value: error: message: code: 10038 incident_id_guid: d4e5f678-9012-3456-defa-456789012345 trace_id_guid: d4e5f678-9012-3456-defa-456789012345 debug: Unexpected server error while configuring communication channel preferences. /api/rest/2.0/system/preferences/communication-channels/search: post: operationId: searchCommunicationChannelPreferences description: ' Beta Version: 10.14.0.cl or later Fetch communication channel preferences. - Use `cluster_preferences` to fetch the default preferences for your ThoughtSpot application instance. - If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to fetch any Org-specific preferences that override the defaults. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action. #### Endpoint URL ' tags: - 10.14.0.cl requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchCommunicationChannelPreferencesRequest' required: true parameters: [] responses: '200': description: Communication channel preferences retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/CommunicationChannelPreferencesResponse' examples: example_1: value: cluster_preferences: - event_type: LIVEBOARD_SCHEDULE channels: - WEBHOOK org_preferences: - org: id: '583464508' name: test_org preferences: - event_type: LIVEBOARD_SCHEDULE channels: - EMAIL '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalid_request: summary: Invalid request value: error: message: code: 10002 incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 debug: org_identifier in org_preferences does not match a known org. '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unauthorized_access: summary: Unauthorized access value: error: message: code: 10097 incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 debug: Authentication required to search communication channel preferences. '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden_access: summary: Forbidden access value: error: message: code: 10023 incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 debug: ADMINISTRATION privilege required to retrieve cluster-level communication channel preferences. '500': description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unexpected_error: summary: Unexpected error value: error: message: code: 10038 incident_id_guid: d4e5f678-9012-3456-defa-456789012345 trace_id_guid: d4e5f678-9012-3456-defa-456789012345 debug: Unexpected server error while searching communication channel preferences. /api/rest/2.0/template/variables/{identifier}/delete: post: operationId: deleteVariable description: "\nDelete a variable
Version: 10.14.0.cl or later\n\n**Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/template/variables/delete](/api/rest/2.0/template/variables/delete) instead.\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n" deprecated: true tags: - 10.14.0.cl parameters: - in: path name: identifier required: true schema: type: string description: Unique id or name of the variable responses: '204': description: Deleting the variable is successful. '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/template/variables/update-values: post: operationId: updateVariableValues description: ' Update values for multiple variables
Version: 10.14.0.cl or later **Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/template/variables/{identifier}/update-values](/api/rest/2.0/template/variables/%7Bidentifier%7D/update-values) instead. Allows updating values for multiple variables in ThoughtSpot. Requires ADMINISTRATION role. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint allows: * Adding new values to variables * Replacing existing values * Deleting values from variables When updating variable values, you need to specify: * The variable identifiers * The values to add/replace/remove for each variable * The operation to perform (ADD, REPLACE, REMOVE, RESET) Behaviour based on operation type: * ADD - Adds values to the variable if this is a list type variable, else same as replace. * REPLACE - Replaces all values of a given set of constraints with the current set of values. * REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value. * RESET - Removes all constrains for a given variable, scope is ignored #### Endpoint URL ' deprecated: true tags: - 10.14.0.cl requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateVariableValuesRequest' required: true parameters: [] responses: '204': description: Variable values updated successfully. '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/webhooks/create: post: operationId: createWebhookConfiguration description: "\n Version: 10.14.0.cl or later\n\nCreates a new webhook configuration to receive notifications for specified events. The webhook will be triggered when the configured events occur in the system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n" tags: - 10.14.0.cl requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateWebhookConfigurationRequest' required: true parameters: [] responses: '200': description: Webhook configuration created successfully content: application/json: schema: $ref: '#/components/schemas/WebhookResponse' examples: example_1: description: Basic webhook with Bearer token authentication value: id: f47ac10b-58cc-4372-a567-0e02b2c3d479 name: My Liveboard Webhook description: Webhook to notify external system about liveboard schedules org: id: '0' name: Primary url: https://myapp.example.com/webhooks/thoughtspot url_params: api_key: abc123 version: v1 events: - LIVEBOARD_SCHEDULE authentication: BEARER_TOKEN: '***' signature_verification: type: HMAC_SHA256 header: X-Webhook-Signature algorithm: SHA256 secret: '***' creation_time_in_millis: 1724277430243 modification_time_in_millis: 1724277430243 additional_headers: - key: Custom-Header value: value1 - key: Custom-Header-2 value: value2 created_by: id: 8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b name: sarah_chen last_modified_by: id: 8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b name: sarah_chen example_2: description: Webhook with OAuth2 authentication value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: OAuth2 Webhook description: Webhook with OAuth2 client credentials org: id: '0' name: Primary url: https://api.example.com/webhooks events: - LIVEBOARD_SCHEDULE authentication: OAUTH2: authorization_url: https://auth.example.com/oauth2/authorize client_id: client_123 client_secret: '***' creation_time_in_millis: 1724278530123 modification_time_in_millis: 1724278530123 created_by: id: 7d5e9f2a-4b8c-4d6e-9a3b-5c7e1f4a8b2d name: mike_rodriguez example_3: description: Webhook with GCP GCS storage destination value: id: c9d8e7f6-a5b4-4321-9876-fedcba012345 name: GCS Storage Webhook description: Webhook that uploads payloads to a GCS bucket org: id: '0' name: Primary url: https://api.example.com/webhooks events: - LIVEBOARD_SCHEDULE storage_destination: storage_type: GCP_GCS storage_config: gcp_gcs_config: bucket_name: my-webhook-files service_account_email: my-sa@my-project.iam.gserviceaccount.com path_prefix: webhooks/ creation_time_in_millis: 1724279630456 modification_time_in_millis: 1724279630456 created_by: id: 3a2b1c4d-5e6f-7890-abcd-ef0123456789 name: priya_sharma last_modified_by: id: 3a2b1c4d-5e6f-7890-abcd-ef0123456789 name: priya_sharma '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalid_request: summary: Invalid request value: error: message: code: 10002 incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 debug: At least one event type must be specified in the events field. '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unauthorized_access: summary: Unauthorized access value: error: message: code: 10097 incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 debug: Authentication required to create a webhook configuration. '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden_access: summary: Forbidden access value: error: message: code: 10023 incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 debug: Insufficient privileges to create webhook configurations. '500': description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unexpected_error: summary: Unexpected error value: error: message: code: 10038 incident_id_guid: d4e5f678-9012-3456-defa-456789012345 trace_id_guid: d4e5f678-9012-3456-defa-456789012345 debug: Unexpected server error while creating the webhook configuration. /api/rest/2.0/webhooks/delete: post: operationId: deleteWebhookConfigurations description: "\n Version: 10.14.0.cl or later\n\nDeletes one or more webhook configurations by their unique id or name. Returns status of each deletion operation, including successfully deleted webhooks and any failures with error details.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n" tags: - 10.14.0.cl requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteWebhookConfigurationsRequest' required: true parameters: [] responses: '200': description: Webhook configurations deleted successfully content: application/json: schema: $ref: '#/components/schemas/WebhookDeleteResponse' examples: example_1: description: Successful deletion of multiple webhooks value: deleted_count: 2 failed_count: 0 deleted_webhooks: - id: b9e3d8f2-4c7a-4e1b-8d3c-5f9a2b7e4c6d name: Old Webhook 1 description: First webhook to be deleted org: id: '0' name: Primary url: https://old-service.example.com/webhook1 events: - LIVEBOARD_SCHEDULE authentication: BEARER_TOKEN: '***' creation_time_in_millis: 1724274600000 modification_time_in_millis: 1724274600000 created_by: id: 1f4e7b2d-9c3a-4e6f-8b1d-3e7c5a9b2f4e name: jennifer_patel - id: e7c4a1f8-2b5d-4a9e-7c3f-8b1e5d4a7c9b name: Old Webhook 2 description: Second webhook to be deleted org: id: '0' name: Primary url: https://old-service.example.com/webhook2 events: - LIVEBOARD_SCHEDULE authentication: API_KEY: key: X-API-Key value: '***' creation_time_in_millis: 1724275530123 modification_time_in_millis: 1724275530123 created_by: id: 9a5c2e8f-4b7d-4c1e-9f2a-6c8e3b5d7a4c name: david_thompson failed_webhooks: [] example_2: description: Partial failure during deletion value: deleted_count: 1 failed_count: 1 deleted_webhooks: - id: c8f2a5e9-3d6b-4f1e-a8c2-7e4b1d9f5a3c name: Successfully Deleted Webhook description: This webhook was deleted successfully org: id: '0' name: Primary url: https://service.example.com/webhook events: - LIVEBOARD_SCHEDULE authentication: BEARER_TOKEN: '***' creation_time_in_millis: 1724276415456 modification_time_in_millis: 1724276415456 created_by: id: 6e9c4f2a-8b5d-4e1f-9c3a-5f8b2e7d4a6c name: emma_wang failed_webhooks: - id: a3f7c1e4-9b2d-4a6e-8f3c-1e5b7a9c4f2e name: Non-existent Webhook error: Webhook not found or access denied '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalid_request: summary: Invalid request value: error: message: code: 10002 incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 debug: webhook_identifiers must contain at least one identifier. '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unauthorized_access: summary: Unauthorized access value: error: message: code: 10097 incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 debug: Authentication required to delete webhook configurations. '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden_access: summary: Forbidden access value: error: message: code: 10023 incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 debug: Insufficient privileges to delete webhook configurations. '500': description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unexpected_error: summary: Unexpected error value: error: message: code: 10038 incident_id_guid: d4e5f678-9012-3456-defa-456789012345 trace_id_guid: d4e5f678-9012-3456-defa-456789012345 debug: Unexpected server error while deleting webhook configurations. /api/rest/2.0/webhooks/search: post: operationId: searchWebhookConfigurations description: "\n Version: 10.14.0.cl or later\n\nSearches for webhook configurations based on various criteria such as Org, webhook identifier, event type, with support for pagination and sorting. Returns matching webhook configurations with their complete details.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n" tags: - 10.14.0.cl requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchWebhookConfigurationsRequest' required: true parameters: [] responses: '200': description: Webhook configurations retrieved successfully content: application/json: schema: $ref: '#/components/schemas/WebhookSearchResponse' examples: example_1: description: Search results with multiple webhooks value: webhooks: - id: f47ac10b-58cc-4372-a567-0e02b2c3d479 name: Liveboard Schedule Webhook description: Webhook for liveboard schedule notifications org: id: '0' name: Primary url: https://myapp.example.com/webhooks url_params: api_key: abc123 events: - LIVEBOARD_SCHEDULE authentication: BEARER_TOKEN: '***' signature_verification: type: HMAC_SHA256 header: X-Webhook-Signature algorithm: SHA256 secret: '***' creation_time_in_millis: 1724277430243 modification_time_in_millis: 1724278215123 additional_headers: - key: Custom-Header value: value1 - key: Custom-Header-2 value: value2 created_by: id: 8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b name: sarah_chen last_modified_by: id: 2c9a7e4f-6b3d-4a8e-9f1c-5e7a3b9c2d6f name: alex_kim - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: API Key Webhook description: Webhook with API key authentication org: id: '0' name: Primary url: https://api.example.com/notifications events: - LIVEBOARD_SCHEDULE authentication: API_KEY: key: X-API-Key value: '***' creation_time_in_millis: 1724275845987 modification_time_in_millis: 1724275845987 created_by: id: 7d5e9f2a-4b8c-4d6e-9a3b-5c7e1f4a8b2d name: mike_rodriguez pagination: record_offset: 0 record_size: 50 total_count: 2 has_more: false example_2: description: Empty search results value: webhooks: [] pagination: record_offset: 0 record_size: 50 total_count: 0 has_more: false '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalid_request: summary: Invalid request value: error: message: code: 10002 incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 debug: record_size must be a positive integer. '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unauthorized_access: summary: Unauthorized access value: error: message: code: 10097 incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 debug: Authentication required to search webhook configurations. '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden_access: summary: Forbidden access value: error: message: code: 10023 incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 debug: Insufficient privileges to search webhook configurations. '500': description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unexpected_error: summary: Unexpected error value: error: message: code: 10038 incident_id_guid: d4e5f678-9012-3456-defa-456789012345 trace_id_guid: d4e5f678-9012-3456-defa-456789012345 debug: Unexpected server error while searching webhook configurations. /api/rest/2.0/webhooks/{webhook_identifier}/update: post: operationId: updateWebhookConfiguration description: "\n Version: 10.14.0.cl or later\n\nUpdates an existing webhook configuration by its unique id or name. Only the provided fields will be updated.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n" tags: - 10.14.0.cl requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateWebhookConfigurationRequest' required: true parameters: - in: path name: webhook_identifier required: true schema: type: string description: Unique ID or name of the webhook configuration. responses: '204': description: Webhook configuration updated successfully '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalid_request: summary: Invalid request value: error: message: code: 10002 incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890 debug: Webhook with the specified identifier was not found. '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unauthorized_access: summary: Unauthorized access value: error: message: code: 10097 incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012 debug: Authentication required to update a webhook configuration. '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden_access: summary: Forbidden access value: error: message: code: 10023 incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234 debug: Insufficient privileges to update webhook configurations. '500': description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: unexpected_error: summary: Unexpected error value: error: message: code: 10038 incident_id_guid: d4e5f678-9012-3456-defa-456789012345 trace_id_guid: d4e5f678-9012-3456-defa-456789012345 debug: Unexpected server error while updating the webhook configuration. components: schemas: WebhookUser: type: object required: - id - name properties: id: type: string description: Unique identifier of the user. name: type: string description: Name of the user. WebhookAuthenticationInput: type: object properties: API_KEY: $ref: '#/components/schemas/WebhookAuthApiKeyInput' description: API key authentication configuration. nullable: true BASIC_AUTH: $ref: '#/components/schemas/WebhookAuthBasicAuthInput' description: Basic authentication configuration. nullable: true BEARER_TOKEN: type: string description: Bearer token authentication configuration. nullable: true OAUTH2: $ref: '#/components/schemas/WebhookAuthOAuth2Input' description: OAuth2 authentication configuration. nullable: true StorageDestinationInput: type: object required: - storage_type - storage_config properties: storage_type: type: string enum: - AWS_S3 - GCP_GCS description: 'Type of storage destination. Example: "AWS_S3"' storage_config: $ref: '#/components/schemas/StorageConfigInput' description: 'Storage-specific configuration settings. Example: {"aws_s3_config": {"bucket_name": "my-webhook-files", "region": "us-west-2", "role_arn": "arn:aws:iam::123456789012:role/WebhookDeliveryRole", "external_id": "ts-webhook-a1b2c3d4-7890", "path_prefix": "webhook-deliveries/"}}' description: Input type for storage destination configuration. WebhookDeleteFailure: type: object required: - id - name - error properties: id: type: string description: Unique identifier of the webhook that failed to delete. name: type: string description: Name of the webhook that failed to delete. error: type: string description: Error message describing why the deletion failed. WebhookAuthApiKey: type: object required: - key - value properties: key: type: string description: The header or query parameter name for the API key. value: type: string description: The API key value. GcpGcsConfig: type: object required: - bucket_name - service_account_email properties: bucket_name: type: string description: Name of the GCS bucket where webhook payloads are stored. service_account_email: type: string description: Email of the GCP service account to impersonate for bucket access. path_prefix: type: string description: Path prefix for organizing objects within the bucket. nullable: true description: GCP GCS storage configuration details. OrgChannelConfigResponse: type: object required: - org - preferences properties: org: $ref: '#/components/schemas/OrgDetails' description: Org details preferences: type: array items: $ref: '#/components/schemas/EventChannelConfig' description: Event-specific communication channel configurations for this org ConfigureCommunicationChannelPreferencesRequest: type: object properties: cluster_preferences: description: Cluster-level default configurations. type: array items: $ref: '#/components/schemas/EventChannelConfigInput' org_preferences: description: Org-specific configurations. type: array items: $ref: '#/components/schemas/OrgChannelConfigInput' AwsS3ConfigInput: type: object required: - bucket_name - region - role_arn properties: bucket_name: type: string description: 'Name of the S3 bucket where webhook payloads will be stored. Example: "my-webhook-files"' region: type: string description: 'AWS region where the S3 bucket is located. Example: "us-west-2"' role_arn: type: string description: 'ARN of the IAM role to assume for S3 access. Example: "arn:aws:iam::123456789012:role/WebhookDeliveryRole"' external_id: type: string description: 'External ID for secure cross-account role assumption. Example: "ts-webhook-a1b2c3d4-7890"' nullable: true path_prefix: type: string description: 'Optional path prefix for organizing objects within the bucket. Example: "webhook-deliveries/"' nullable: true description: Input type for AWS S3 storage configuration. UpdateVariableValuesRequest: type: object properties: variable_assignment: description: Array of variable assignment objects specifying the variable identifier, values to assign, and the operation type (ADD, REMOVE, REPLACE, or RESET) to perform on each variable. type: array items: $ref: '#/components/schemas/VariableUpdateAssignmentInput' variable_value_scope: description: Array of scope objects defining where the variable values apply, including organization context, optional principal constraints (user or group), model reference for formula variables, and priority for conflict resolution. type: array items: $ref: '#/components/schemas/VariableUpdateScopeInput' required: - variable_assignment - variable_value_scope WebhookSignatureVerification: type: object required: - type - header - algorithm - secret properties: type: type: string enum: - HMAC_SHA256 description: Signature verification method type. header: type: string description: HTTP header where the signature is sent. algorithm: type: string enum: - SHA256 description: Hash algorithm used for signature verification. secret: type: string description: Shared secret used for HMAC signature generation. ErrorResponse: type: object properties: error: type: object nullable: true AwsS3Config: type: object required: - bucket_name - region - role_arn properties: bucket_name: type: string description: Name of the S3 bucket where webhook payloads are stored. region: type: string description: AWS region where the S3 bucket is located. role_arn: type: string description: ARN of the IAM role used for S3 access. external_id: type: string description: External ID for secure cross-account role assumption. nullable: true path_prefix: type: string description: Path prefix for organizing objects within the bucket. nullable: true description: AWS S3 storage configuration details. WebhookAuthOAuth2: type: object required: - authorization_url - client_id - client_secret properties: authorization_url: type: string description: OAuth2 authorization server URL. client_id: type: string description: OAuth2 client identifier. client_secret: type: string description: OAuth2 client secret key. WebhookOrg: type: object required: - id - name properties: id: type: string description: Unique identifier of the org. name: type: string description: Name of the org. EventChannelConfig: type: object required: - event_type - channels properties: event_type: type: string enum: - LIVEBOARD_SCHEDULE description: Type of event for which communication channels are configured channels: type: array items: type: string enum: - EMAIL - WEBHOOK description: Communication channels enabled for this event type. Empty array indicates no channels are enabled. WebhookSignatureVerificationInput: type: object required: - type - header - algorithm - secret properties: type: type: string enum: - HMAC_SHA256 description: Signature verification method type. header: type: string description: HTTP header where the signature is sent. algorithm: type: string enum: - SHA256 description: Hash algorithm used for signature verification. secret: type: string description: Shared secret used for HMAC signature generation. OrgPreferenceSearchCriteriaInput: type: object required: - org_identifier properties: org_identifier: type: string description: Unique identifier or name of the org event_types: type: array items: type: string enum: - LIVEBOARD_SCHEDULE description: Event types to search for. If not provided, all event types for this org are returned. nullable: true OrgDetails: type: object required: - id - name properties: id: type: string description: Unique id of the org name: type: string description: Name of the org DeleteWebhookConfigurationsRequest: type: object properties: webhook_identifiers: description: List of webhook identifiers to delete. type: array items: type: string required: - webhook_identifiers WebhookPagination: type: object required: - record_offset - record_size - total_count - has_more properties: record_offset: type: integer format: int32 description: The starting record number from where the records are included. record_size: type: integer format: int32 description: The number of records included in the response. total_count: type: integer format: int32 description: Total number of webhook configurations available. has_more: type: boolean description: Indicates whether more records are available beyond the current response. WebhookKeyValuePair: type: object required: - key - value properties: key: type: string description: Header name. value: type: string description: Header value. description: Key-value pair for additional webhook headers. WebhookAuthOAuth2Input: type: object required: - authorization_url - client_id - client_secret properties: authorization_url: type: string description: OAuth2 authorization server URL. client_id: type: string description: OAuth2 client identifier. client_secret: type: string description: OAuth2 client secret key. WebhookKeyValuePairInput: type: object required: - key - value properties: key: type: string description: Header name. value: type: string description: Header value. description: Key-value pair input for additional webhook headers. WebhookResponse: type: object required: - id - name - url - events - creation_time_in_millis - modification_time_in_millis properties: id: type: string description: Unique identifier of the webhook configuration. name: type: string description: Name of the webhook configuration. description: type: string description: Description of the webhook configuration. nullable: true org: $ref: '#/components/schemas/WebhookOrg' description: Org details. nullable: true url: type: string description: The webhook endpoint URL. url_params: type: object description: Additional URL parameters as key-value pairs. nullable: true events: type: array items: type: string enum: - LIVEBOARD_SCHEDULE description: List of events this webhook subscribes to. authentication: $ref: '#/components/schemas/WebhookAuthentication' description: Redacted authorization configuration for the webhook. nullable: true signature_verification: $ref: '#/components/schemas/WebhookSignatureVerification' description: Redacted configuration for webhook signature verification. nullable: true additional_headers: type: array items: $ref: '#/components/schemas/WebhookKeyValuePair' description: 'Additional headers as an array of key-value pairs.
Version: 26.4.0.cl or later' nullable: true creation_time_in_millis: type: number format: float description: Creation time of the webhook configuration in milliseconds. modification_time_in_millis: type: number format: float description: Last modified time of the webhook configuration in milliseconds. created_by: $ref: '#/components/schemas/WebhookUser' description: User who created the webhook. nullable: true last_modified_by: $ref: '#/components/schemas/WebhookUser' description: User who last modified the webhook. nullable: true storage_destination: $ref: '#/components/schemas/StorageDestination' description: Storage destination configuration for webhook payload delivery. nullable: true status: type: string enum: - ENABLED - DISABLED description: 'Status of the webhook (ENABLED or DISABLED). Only present when explicitly set.
Version: 26.7.0.cl or later' nullable: true VariableUpdateScopeInput: type: object required: - org_identifier properties: org_identifier: type: string description: The unique name of the org principal_type: type: string enum: - USER - USER_GROUP description: Type of principal to which the variable value applies. Use USER to assign values to a specific user, or USER_GROUP to assign values to a group. nullable: true principal_identifier: type: string description: Unique ID or name of the principal nullable: true model_identifier: type: string description: Unique ID or name of the model. Required for FORMULA_VARIABLE type to scope the variable value to a specific worksheet. nullable: true priority: type: integer format: int32 description: The priority level for this scope assignment, used for conflict resolution when multiple values match. Higher priority values (larger numbers) take precedence. nullable: true description: Input for defining the scope of variable value assignments in batch update operations StorageDestination: type: object required: - storage_type - storage_config properties: storage_type: type: string enum: - AWS_S3 - GCP_GCS description: Type of storage destination (e.g., AWS_S3). storage_config: $ref: '#/components/schemas/StorageConfig' description: Storage-specific configuration settings. description: Storage destination configuration for webhook payload delivery. GcpGcsConfigInput: type: object required: - bucket_name - service_account_email properties: bucket_name: type: string description: 'Name of the GCS bucket where webhook payloads will be stored. Example: "my-webhook-files"' service_account_email: type: string description: 'Email of the GCP service account to impersonate for bucket access. The platform''s service account must be granted roles/iam.serviceAccountTokenCreator on this SA. Example: "my-sa@my-project.iam.gserviceaccount.com"' path_prefix: type: string description: 'Optional path prefix for organizing objects within the bucket. Example: "webhooks/"' nullable: true description: Input type for GCP GCS storage configuration. StorageConfigInput: type: object properties: aws_s3_config: $ref: '#/components/schemas/AwsS3ConfigInput' description: 'AWS S3 storage configuration. Example: {"bucket_name": "my-webhook-files", "region": "us-west-2", "role_arn": "arn:aws:iam::123456789012:role/WebhookDeliveryRole", "external_id": "ts-webhook-a1b2c3d4-7890", "path_prefix": "webhook-deliveries/"}' nullable: true gcp_gcs_config: $ref: '#/components/schemas/GcpGcsConfigInput' description: 'GCP GCS storage configuration. Example: {"bucket_name": "my-webhook-files", "service_account_email": "my-sa@my-project.iam.gserviceaccount.com", "path_prefix": "webhooks/"}
Version: 26.7.0.cl or later' nullable: true description: Input type for storage configuration. WebhookSortOptionsInput: type: object properties: field_name: type: string enum: - CREATED - MODIFIED - NAME default: CREATED description: Name of the field to apply the sort on. nullable: true order: type: string enum: - ASC - DESC default: DESC description: 'Sort order: ASC (Ascending) or DESC (Descending).' nullable: true StorageConfig: type: object properties: aws_s3_config: $ref: '#/components/schemas/AwsS3Config' description: AWS S3 storage configuration. nullable: true gcp_gcs_config: $ref: '#/components/schemas/GcpGcsConfig' description: 'GCP GCS storage configuration.
Version: 26.7.0.cl or later' nullable: true description: Storage configuration containing provider-specific settings. WebhookAuthApiKeyInput: type: object required: - key - value properties: key: type: string description: The header or query parameter name for the API key. value: type: string description: The API key value. CreateWebhookConfigurationRequest: type: object properties: name: description: Name of the webhook configuration. type: string description: description: Description of the webhook configuration. type: string url: description: The webhook endpoint URL. type: string url_params: description: Additional URL parameters as key-value pairs. type: object events: description: List of events to subscribe to. type: array items: type: string enum: - LIVEBOARD_SCHEDULE authentication: description: Authorization configuration for the webhook. allOf: - $ref: '#/components/schemas/WebhookAuthenticationInput' signature_verification: description: Configuration for webhook signature verification. allOf: - $ref: '#/components/schemas/WebhookSignatureVerificationInput' storage_destination: description: 'Configuration for storage destination. AWS S3 example: {"storage_type": "AWS_S3", "storage_config": {"aws_s3_config": {"bucket_name": "my-webhook-files", "region": "us-west-2", "role_arn": "arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole", "external_id": "ts-webhook-a1b2c3d4-7890", "path_prefix": "thoughtspot-webhooks/"}}} GCP GCS example: {"storage_type": "GCP_GCS", "storage_config": {"gcp_gcs_config": {"bucket_name": "my-webhook-files", "service_account_email": "my-sa@my-project.iam.gserviceaccount.com", "path_prefix": "webhooks/"}}}
Version: 26.3.0.cl or later' allOf: - $ref: '#/components/schemas/StorageDestinationInput' additional_headers: description: 'Additional headers as an array of key-value pairs. Example: [{"key": "X-Custom-Header", "value": "custom_value"}]
Version: 26.4.0.cl or later' type: array items: $ref: '#/components/schemas/WebhookKeyValuePairInput' status: description: 'Status of the webhook (ENABLED or DISABLED). Optional — when omitted, status is not stored and will be absent from the response.
Version: 26.7.0.cl or later' type: string enum: - ENABLED - DISABLED required: - name - url - events UpdateWebhookConfigurationRequest: type: object properties: name: description: Name of the webhook configuration. type: string description: description: Description of the webhook configuration. type: string url: description: The webhook endpoint URL. type: string url_params: description: Additional URL parameters as key-value pairs. type: object events: description: List of events to subscribe to. type: array items: type: string enum: - LIVEBOARD_SCHEDULE authentication: description: Authorization configuration for the webhook. allOf: - $ref: '#/components/schemas/WebhookAuthenticationInput' signature_verification: description: Configuration for webhook signature verification. allOf: - $ref: '#/components/schemas/WebhookSignatureVerificationInput' storage_destination: description: 'Configuration for storage destination. AWS S3 example: {"storage_type": "AWS_S3", "storage_config": {"aws_s3_config": {"bucket_name": "my-webhook-files", "region": "us-west-2", "role_arn": "arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole", "external_id": "ts-webhook-a1b2c3d4-7890", "path_prefix": "thoughtspot-webhooks/"}}} GCP GCS example: {"storage_type": "GCP_GCS", "storage_config": {"gcp_gcs_config": {"bucket_name": "my-webhook-files", "service_account_email": "my-sa@my-project.iam.gserviceaccount.com", "path_prefix": "webhooks/"}}}
Version: 26.3.0.cl or later' allOf: - $ref: '#/components/schemas/StorageDestinationInput' additional_headers: description: 'Additional headers as an array of key-value pairs. Example: [{"key": "X-Custom-Header", "value": "custom_value"}]
Version: 26.4.0.cl or later' type: array items: $ref: '#/components/schemas/WebhookKeyValuePairInput' status: description: 'Status of the webhook (ENABLED or DISABLED).
Version: 26.7.0.cl or later' type: string enum: - ENABLED - DISABLED reset_options: description: 'List of optional configuration sections to clear. Each value removes the corresponding configuration entirely from the webhook: AUTHENTICATION removes the authentication config, SIGNATURE_VERIFICATION removes the signature verification config, STORAGE_DESTINATION removes the storage destination config.
Version: 26.7.0.cl or later' type: array items: type: string enum: - AUTHENTICATION - SIGNATURE_VERIFICATION - STORAGE_DESTINATION WebhookAuthBasicAuthInput: type: object required: - username - password properties: username: type: string description: Username for basic authentication. password: type: string description: Password for basic authentication. EventChannelConfigInput: type: object required: - event_type - channels properties: event_type: type: string enum: - LIVEBOARD_SCHEDULE description: Type of event for which communication channels are configured channels: type: array items: type: string enum: - EMAIL - WEBHOOK description: Communication channels enabled for this event type. Empty array disables all channels for this event. WebhookAuthentication: type: object properties: API_KEY: $ref: '#/components/schemas/WebhookAuthApiKey' description: Redacted API key authentication configuration. nullable: true BASIC_AUTH: $ref: '#/components/schemas/WebhookAuthBasicAuth' description: Redacted Basic authentication configuration. nullable: true BEARER_TOKEN: type: string description: Redacted Bearer token authentication configuration. nullable: true OAUTH2: $ref: '#/components/schemas/WebhookAuthOAuth2' description: Redacted OAuth2 authentication configuration. nullable: true SearchWebhookConfigurationsRequest: type: object properties: org_identifier: description: Unique ID or name of the org. type: string webhook_identifier: description: Unique ID or name of the webhook. type: string event_type: description: Type of webhook event to filter by. type: string enum: - LIVEBOARD_SCHEDULE record_offset: description: The offset point, starting from where the webhooks should be included in the response. default: 0 type: integer format: int32 record_size: description: The number of webhooks that should be included in the response starting from offset position. default: 50 type: integer format: int32 sort_options: description: Sort option includes sort field and sort order. allOf: - $ref: '#/components/schemas/WebhookSortOptionsInput' status: description: 'Filter webhooks by status (ENABLED or DISABLED).
Version: 26.7.0.cl or later' type: string enum: - ENABLED - DISABLED SearchCommunicationChannelPreferencesRequest: type: object properties: cluster_preferences: description: Event types to search for in cluster-level preferences. type: array items: type: string enum: - LIVEBOARD_SCHEDULE org_preferences: description: Org-specific search criteria. type: array items: $ref: '#/components/schemas/OrgPreferenceSearchCriteriaInput' CommunicationChannelPreferencesResponse: type: object properties: cluster_preferences: type: array items: $ref: '#/components/schemas/EventChannelConfig' description: Cluster-level default configurations. nullable: true org_preferences: type: array items: $ref: '#/components/schemas/OrgChannelConfigResponse' description: Org-specific configurations. nullable: true OrgChannelConfigInput: type: object required: - org_identifier properties: org_identifier: type: string description: Unique identifier or name of the org operation: type: string enum: - REPLACE - RESET default: REPLACE description: 'Operation to perform. REPLACE: Update preferences (default). RESET: Remove org-specific configurations, causing fallback to cluster-level preferences.' nullable: true preferences: type: array items: $ref: '#/components/schemas/EventChannelConfigInput' description: Event-specific configurations. Required for REPLACE operation. nullable: true reset_events: type: array items: type: string enum: - LIVEBOARD_SCHEDULE description: Event types to reset. Required for RESET operation. Org-specific configurations for these events will be removed, causing fallback to cluster-level preferences. nullable: true VariableUpdateAssignmentInput: type: object required: - variable_identifier - variable_values - operation properties: variable_identifier: type: string description: ID or Name of the variable variable_values: type: array items: type: string description: Values of the variable operation: type: string enum: - ADD - REMOVE - REPLACE - RESET description: Operation to perform description: Input for variable value update in batch operations WebhookAuthBasicAuth: type: object required: - username - password properties: username: type: string description: Username for basic authentication. password: type: string description: Password for basic authentication. WebhookSearchResponse: type: object required: - webhooks - pagination properties: webhooks: type: array items: $ref: '#/components/schemas/WebhookResponse' description: List of webhook configurations matching the search criteria. pagination: $ref: '#/components/schemas/WebhookPagination' description: Pagination information. WebhookDeleteResponse: type: object required: - deleted_count - failed_count - deleted_webhooks - failed_webhooks properties: deleted_count: type: integer format: int32 description: Number of webhooks successfully deleted. failed_count: type: integer format: int32 description: Number of webhooks that failed to delete. deleted_webhooks: type: array items: $ref: '#/components/schemas/WebhookResponse' description: List of successfully deleted webhooks. failed_webhooks: type: array items: $ref: '#/components/schemas/WebhookDeleteFailure' description: List of webhooks that failed to delete with error details. 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