ThoughtSpot Webhooks API

The Webhooks API from ThoughtSpot — 5 operation(s) for webhooks.

Documentation

Specifications

Other Resources

OpenAPI Specification

thoughtspot-webhooks-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: ThoughtSpot Public REST 10.1.0.cl Webhooks API
  version: '2.0'
servers:
- url: '{base-url}'
  variables:
    base-url:
      default: https://localhost:443
security:
- bearerAuth: []
tags:
- name: Webhooks
paths:
  /api/rest/2.0/webhooks/create:
    post:
      operationId: createWebhookConfiguration
      description: "\n <span class=\"since-beta-tag\">Version: 10.14.0.cl or later</span>\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:
      - Webhooks
      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 <span class=\"since-beta-tag\">Version: 10.14.0.cl or later</span>\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:
      - Webhooks
      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/storage-config:
    get:
      operationId: getWebhookStorageConfig
      description: "\n <span class=\"since-beta-tag\">Version: 26.7.0.cl or later</span>\n\nReturns cluster-level storage setup information for configuring customer-managed storage. Use this endpoint to obtain the IAM identity details required before configuring a webhook storage destination. For S3 destinations, returns the platform AWS account ID and IAM trust policy template. For GCS destinations, returns the platform GCP service account email and the IAM role to grant for service account impersonation.\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:
      - Webhooks
      parameters: []
      responses:
        '200':
          description: Storage setup information retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WebhookStorageConfigInfo'
              examples:
                example_1:
                  description: AWS-hosted cluster — customer configuring S3 storage destination
                  value:
                  - storage_type: OBJECT_STORAGE
                    provider: AWS_S3
                    config:
                      config_type: AWS_TO_S3_STORAGE
                      aws_account_id: '123456789012'
                      trust_policy_template:
                        Version: '2012-10-17'
                        Statement:
                        - Effect: Allow
                          Principal:
                            AWS: arn:aws:iam::123456789012:root
                          Action: sts:AssumeRole
                          Condition:
                            StringEquals:
                              sts:ExternalId: ts-webhook-a1b2c3d4-7890
                      setup_instructions:
                      - 1. Create an IAM role in your AWS account
                      - 2. Attach the trust policy template to the role
                      - 3. Attach S3 permissions (s3:PutObject, s3:PutObjectAcl) to the role
                      - 4. Use the role ARN in your webhook storage configuration
                example_2:
                  description: GCP-hosted cluster — customer configuring S3 storage destination
                  value:
                  - storage_type: OBJECT_STORAGE
                    provider: AWS_S3
                    config:
                      config_type: GCP_TO_S3_STORAGE
                      gcp_service_account_id: '115663769112811637952'
                      oidc_provider: accounts.google.com
                      trust_policy_template:
                        Version: '2012-10-17'
                        Statement:
                        - Effect: Allow
                          Principal:
                            Federated: arn:aws:iam::YOUR_AWS_ACCOUNT_ID:oidc-provider/accounts.google.com
                          Action: sts:AssumeRoleWithWebIdentity
                          Condition:
                            StringEquals:
                              accounts.google.com:sub: '115663769112811637952'
                      setup_instructions:
                      - 1. Add accounts.google.com as an Identity Provider in AWS IAM
                      - 2. Create an IAM role with Web Identity Federation trust
                      - 3. Configure the trust policy with the GCP service account ID
                      - 4. Attach S3 permissions (s3:PutObject, s3:PutObjectAcl) to the role
                      - 5. Use the role ARN in your webhook storage configuration
                example_3:
                  description: GCP-hosted cluster — customer configuring both S3 and GCS storage destinations
                  value:
                  - storage_type: OBJECT_STORAGE
                    provider: AWS_S3
                    config:
                      config_type: GCP_TO_S3_STORAGE
                      gcp_service_account_id: '115663769112811637952'
                      oidc_provider: accounts.google.com
                      trust_policy_template:
                        Version: '2012-10-17'
                        Statement:
                        - Effect: Allow
                          Principal:
                            Federated: arn:aws:iam::YOUR_AWS_ACCOUNT_ID:oidc-provider/accounts.google.com
                          Action: sts:AssumeRoleWithWebIdentity
                          Condition:
                            StringEquals:
                              accounts.google.com:sub: '115663769112811637952'
                      setup_instructions:
                      - 1. Add accounts.google.com as an Identity Provider in AWS IAM
                      - 2. Create an IAM role with Web Identity Federation trust
                      - 3. Configure the trust policy with the GCP service account ID
                      - 4. Attach S3 permissions (s3:PutObject, s3:PutObjectAcl) to the role
                      - 5. Use the role ARN in your webhook storage configuration
                  - storage_type: OBJECT_STORAGE
                    provider: GCP_GCS
                    config:
                      config_type: GCP_TO_GCS_STORAGE
                      service_account_email: webhook-sa@example-project.iam.gserviceaccount.com
                      required_role: roles/iam.serviceAccountTokenCreator
                      setup_instructions:
                      - 1. In GCP Console, go to IAM & Admin > Service Accounts
                      - 2. Click on the service account that has write access to your GCS bucket
                      - 3. Open the 'Principals with access' tab and click 'Grant Access'
                      - 4. Enter the service account email as the principal
                      - 5. Assign the roles/iam.serviceAccountTokenCreator role and save
                      - 6. Use your service account email in the webhook storage configuration
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '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 retrieve webhook storage 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 retrieve webhook storage configuration.
        '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 retrieving webhook storage configuration.
  /api/rest/2.0/webhooks/search:
    post:
      operationId: searchWebhookConfigurations
      description: "\n <span class=\"since-beta-tag\">Version: 10.14.0.cl or later</span>\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:
      - Webhooks
      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 <span class=\"since-beta-tag\">Version: 10.14.0.cl or later</span>\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:
      - Webhooks
      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:
 

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/thoughtspot/refs/heads/main/openapi/thoughtspot-webhooks-api-openapi.yml