diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f81ed4f7..0eb8f84a 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -29,14 +29,6 @@ ], "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", @@ -472,97 +464,6 @@ } } }, - "/api/rest/2.0/ai/memory/export": { - "post": { - "operationId": "exportMemory", - "description": "\nExports memory entries (rules, recipes, and non-semantic rules) for\nthe specified data-models as a single YAML payload.\nRequires `CAN_USE_SPOTTER` privilege and read access on every\nreferenced data-model. Routes through eureka-agent, which applies\nthe same accessibility filtering and obj_id resolution as the\ninternal GraphQL surface.
Beta Version: 26.8.0.cl or later\n\nThis API allows users to export data-model memories (can be extended to agent memories in future) for a given list of data-models. This exported yaml file can then be modified and used as input to the import API in target env.\n\nThis API enables customers to migrate memories from a source env to a target env. This improves memory adoption for Spotter by giving the users a chance to develop their memories in a dev env and replicate the same in a prod env.\n\nTo use this API, the user needs either edit access or memory privilege on the data-model or manage-spotter privilege and they must use corresponding org related bearerToken where the data-model exists.\n\n#### Usage guidelines\n\nTo export memory for one or more data-models, the request may include:\n- `sources`: A list of typed scope groups identifying which data-models to export memory for. Each group contains:\n - `type`: The source object type for this group — `DATA_MODEL`.\n - `identifiers`: An array of GUIDs or human-readable `obj_id`s of the data-models to export memory for. obj_ids are resolved server-side before forwarding.\n\nThe memory types (`RULES`, `RECIPES`, and `NON_SEMANTIC_RULES`) and the output format (`YAML`) are fixed for this endpoint and are not request parameters.\n\nThe API returns a response object with:\n- `content`: The serialized memory payload (currently YAML) — exactly the shape that the `importMemory` API consumes. Edit it locally and pass it back through `importMemory` to apply changes.\n\n#### Source Type\n\n- **DATA_MODEL**: The `identifiers` are data-model (worksheet) GUIDs. This is the default (and currently only) source type for Spotter memory and covers the rules and recipes attached directly to a data-model.\n\n#### Error responses\n\n| Code | Description |\n|------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the authenticated user does not have necessary permissions, or lacks read access on a referenced data-model, or the bearer token does not correspond to the data-model's org. |\n\n> ###### Note:\n> - To use this API, the user needs either edit access or memory privilege on the data-model or manage-spotter privilege and they must use corresponding org related bearerToken where the data-model exists.\n> - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> - Available from version 26.8.0.cl and later.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "AI", - "26.8.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExportMemoryRequest" - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Common successful response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/eureka_ExportMemoryResponse" - }, - "examples": { - "example_1": { - "summary": "Serialized YAML memory payload returned (truncated)", - "value": { - "content": "memories:\n - type: RULE\n content:\n rule_definition: always show revenue in USD\n datamodel_sources:\n - guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890\n obj_id: sales_model\n" - } - } - } - } - } - }, - "201": { - "description": "Common error response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/eureka_ExportMemoryResponse" - } - } - } - }, - "400": { - "description": "Operation failed", - "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": "Operation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/ai/agent/instructions/get": { "get": { "operationId": "getAgentInstructions", @@ -734,10 +635,10 @@ "required": false, "schema": { "type": "integer", - "format": "int32", - "default": 30 + "format": "int32" }, - "description": "Maximum number of conversations to return. Used for pagination." + "description": "Maximum number of conversations to return. Used for pagination.", + "default": 30 }, { "in": "query", @@ -745,20 +646,20 @@ "required": false, "schema": { "type": "integer", - "format": "int32", - "default": 0 + "format": "int32" }, - "description": "Number of conversations to skip before returning results. Used for pagination." + "description": "Number of conversations to skip before returning results. Used for pagination.", + "default": 0 }, { "in": "query", "name": "skip_empty", "required": false, "schema": { - "type": "boolean", - "default": true + "type": "boolean" }, - "description": "When true, excludes conversations with no messages. Defaults to true." + "description": "When true, excludes conversations with no messages. Defaults to true.", + "default": true } ], "responses": { @@ -1074,113 +975,6 @@ } } }, - "/api/rest/2.0/ai/memory/import": { - "post": { - "operationId": "importMemory", - "description": "\nImports memory entries from a YAML payload. Performs an\natomic, exact-subset replacement on the target data-models declared\nin the payload itself: every existing memory whose `datamodel_sources`\nset is a subset of the payload's union is deleted, and every row in\nthe payload is inserted.\nPhase 1 (insert) is all-or-nothing; any insert failure rolls back\nevery prior insert and returns `ROLLED_BACK`. Phase 2 (delete old)\nis best-effort; partial delete failures surface as\n`RESIDUAL_ORPHAN` entries in `warnings` (a follow-up sweeper\nreconciles them).\n`dry_run` is required: pass `true` first to inspect the preview\ncounts and row failures, then re-run with `dry_run = false` once the\ncaller is satisfied. A real import refuses to write when any row\nfailed validation.\nRequires `CAN_USE_SPOTTER` privilege and edit / coaching access on\nevery referenced data-model.
Beta Version: 26.8.0.cl or later\n\nThis API allows users to import data-model memories (can be extended to agent memories in future) using a given yaml file. This yaml file can be obtained from the export memory API in source env and can be modified and used as input to the import API in target env.\n\nThis API enables customers to migrate memories from a source env to a target env. This improves memory adoption for Spotter by giving the users a chance to develop their memories in a dev env and replicate the same in a prod env.\n\nTo use this API, the user needs either edit access or memory privilege on the data-model or manage-spotter privilege and they must use corresponding org related bearerToken where the data-model exists.\n\n#### Usage guidelines\n\nTo import memory, the request must include:\n- `content`: The full serialized memory payload to import (currently YAML). Typically the `content` value returned by the `exportMemory` API, edited locally and re-submitted. The payload itself declares which data-models the memory applies to (via each row's `datamodel_sources`), so no separate identifier list is required.\n- `dry_run`: Required. When `true`, validate the payload and return preview counts without writing anything; when `false`, apply the atomic replacement. There is no default — always run with `dry_run = true` first, then re-run with `dry_run = false` once you are satisfied with the preview.\n\nThe import performs an atomic, exact-subset replacement on the data-models referenced in the payload: every existing memory whose `datamodel_sources` set is a subset of the payload's union is deleted, and every row in the payload is inserted.\n\nThe API returns a response object with:\n- `status`: The terminal status of the import (`SUCCESS`, `VALIDATION_FAILED`, or `FAILED`).\n- `summary`: Per `(memory_type, source)` counts. In a dry run the `deleted_record_count`/`inserted_record_count` are previews; in a real import they are actuals.\n- `validation_failures`: Per-item validation failures, each with `line_number`, `reason`, `field_name`, and `message` for click-to-locate and inline highlighting.\n- `diagnostics`: Groups of diagnostic messages, each with a `sub_status` (`WARNING`, `FAILURE`, `ROLLED_BACK`, or `UNKNOWN`) and a `messages` list. This is the single channel for both non-fatal observations (e.g. a `RESIDUAL_ORPHAN` entry under `WARNING` when a best-effort delete left an old doc behind, reconciled later by a sweeper using `operation_id`) and fatal causes (e.g. the failure reason under `FAILURE`, or a `ROLLED_BACK` group when inserts were undone).\n- `operation_id`: A server-minted UUID for log correlation and follow-up cleanup.\n\n#### Dry run\n\n`dry_run` is required and has no default, so the import is always a deliberate two-step flow:\n\n1. **First, call with `dry_run = true`.** This validates the payload and previews what would happen — the counts in `summary` and any `validation_failures` — without writing anything.\n2. **Then, after reviewing a clean preview, call again with `dry_run = false`** (same `content`). This performs the atomic replacement. It refuses to write when any item fails validation, so fix the reported `validation_failures` and resubmit.\n\n> ###### Important:\n> Never call `dry_run = false` without first inspecting a `dry_run = true` preview. A real import deletes and replaces existing memories on the referenced data-models.\n\n#### Error responses\n\n| Code | Description |\n|------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. \n |\n\n#### Logical failures\n\nValidation and write failures are not returned in the error envelope. The call returns `200` with a terminal `status` of `VALIDATION_FAILED` or `FAILED`, and the details live in `validation_failures` / `diagnostics`:\n\n- **VALIDATION_FAILED** — one or more items failed schema/semantic validation; nothing was written. Inspect `validation_failures`, fix the items, and resubmit.\n- **FAILED** — the import did not complete. This covers both internal errors and rollbacks. Inspect `diagnostics`: a `ROLLED_BACK` group means Phase-1 inserts failed and every successful insert was undone (the originals are intact, no destructive change), while a `FAILURE` group carries another non-validation cause (e.g. an internal error).\n\nSample `VALIDATION_FAILED` response (HTTP 200):\n\n```json\n{\n \"status\": \"VALIDATION_FAILED\",\n \"summary\": [\n {\n \"memory_type\": \"RULES\",\n \"source\": {\n \"identifier\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"type\": \"DATA_MODEL\"\n },\n \"existing_record_count\": 3,\n \"deleted_record_count\": 0,\n \"inserted_record_count\": 0,\n \"failed_record_count\": 1\n }\n ],\n \"validation_failures\": [\n {\n \"line_number\": 4,\n \"reason\": \"CHAR_LIMIT\",\n \"field_name\": \"content.rule_definition\",\n \"message\": \"Rule definition exceeds the maximum allowed length.\"\n }\n ],\n \"diagnostics\": [],\n \"operation_id\": \"550e8400-e29b-41d4-a716-446655440000\"\n}\n```\n\n> ###### Note:\n> - To use this API, the user needs either edit access or memory privilege on the data-model or manage-spotter privilege and they must use corresponding org related bearerToken where the data-model exists.\n> - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> - Available from version 26.8.0.cl and later.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "AI", - "26.8.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportMemoryRequest" - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Common successful response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/eureka_ImportMemoryResponse" - }, - "examples": { - "example_1": { - "summary": "Successful dry-run preview", - "value": { - "status": "SUCCESS", - "summary": [ - { - "memory_type": "RULES", - "source": { - "identifier": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "type": "DATA_MODEL" - }, - "existing_record_count": 3, - "deleted_record_count": 3, - "inserted_record_count": 1, - "failed_record_count": 0 - } - ], - "validation_failures": [], - "diagnostics": [], - "operation_id": "550e8400-e29b-41d4-a716-446655440000" - } - } - } - } - } - }, - "201": { - "description": "Common error response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/eureka_ImportMemoryResponse" - } - } - } - }, - "400": { - "description": "Operation failed", - "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": "Operation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/ai/agent/conversations/{conversation_identifier}/answers/{answer_identifier}/details": { "get": { "operationId": "loadAnswer", @@ -2349,21 +2143,6 @@ "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 of cluster_preferences or org_preferences must be provided." - } - } - } - } } } } @@ -2374,21 +2153,6 @@ "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 authentication settings." - } - } - } - } } } } @@ -2399,21 +2163,6 @@ "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 or CONTROL_TRUSTED_AUTH privilege required to configure authentication settings." - } - } - } - } } } } @@ -2424,21 +2173,6 @@ "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 authentication settings." - } - } - } - } } } } @@ -2462,52 +2196,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/User" - }, - "examples": { - "example_1": { - "description": "Current user info for an admin user in the primary org", - "value": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin", - "display_name": "TS Admin", - "visibility": "SHARABLE", - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "can_change_password": true, - "complete_detail": true, - "creation_time_in_millis": 1699900000000, - "current_org": { - "id": 0, - "name": "Primary" - }, - "deleted": false, - "deprecated": false, - "account_type": "LOCAL_USER", - "account_status": "ACTIVE", - "email": "tsadmin@example.com" - } - }, - "example_2": { - "description": "Current user info for a SAML user switched to a non-primary org", - "value": { - "id": "7e4c9f2a-8b5d-4a1e-9c3b-6d8e2f5a7b4c", - "name": "sales_analyst", - "display_name": "Sales Analyst", - "visibility": "SHARABLE", - "author_id": "7e4c9f2a-8b5d-4a1e-9c3b-6d8e2f5a7b4c", - "can_change_password": false, - "complete_detail": true, - "creation_time_in_millis": 1699900000000, - "current_org": { - "id": 583464508, - "name": "sales_org" - }, - "deleted": false, - "deprecated": false, - "account_type": "SAML_USER", - "account_status": "ACTIVE", - "email": "sales_analyst@example.com" - } - } } } } @@ -2528,21 +2216,6 @@ "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 the current user information." - } - } - } - } } } } @@ -2563,21 +2236,6 @@ "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 current user information." - } - } - } - } } } } @@ -2601,28 +2259,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/GetTokenResponse" - }, - "examples": { - "example_1": { - "description": "Standard session token valid for 1 hour", - "value": { - "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.example_token_payload.signature", - "creation_time_in_millis": 1724277430000, - "expiration_time_in_millis": 1724281030000, - "valid_for_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "valid_for_username": "tsadmin" - } - }, - "example_2": { - "description": "Short-lived session token valid for 5 minutes", - "value": { - "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.example_short_token_payload.signature", - "creation_time_in_millis": 1724277430000, - "expiration_time_in_millis": 1724277730000, - "valid_for_user_id": "7e4c9f2a-8b5d-4a1e-9c3b-6d8e2f5a7b4c", - "valid_for_username": "sales_analyst" - } - } } } } @@ -2643,21 +2279,6 @@ "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 the current session token." - } - } - } - } } } } @@ -2678,21 +2299,6 @@ "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 the current user session token." - } - } - } - } } } } @@ -2726,42 +2332,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/AccessToken" - }, - "examples": { - "example_1": { - "description": "Custom access token with variable values and APPEND persist option for an existing user", - "value": { - "id": "9f8e7d6c-5b4a-3210-fedc-ba9876543210", - "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.example_custom_token.signature", - "org": { - "id": 0, - "name": "Primary" - }, - "user": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "analyst_user" - }, - "creation_time_in_millis": 1724277430000, - "expiration_time_in_millis": 1724277730000 - } - }, - "example_2": { - "description": "Custom access token with variable values for a JIT-provisioned user", - "value": { - "id": "1a2b3c4d-5e6f-7890-abcd-ef1234567890", - "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.example_jit_custom_token.signature", - "org": { - "id": 1, - "name": "SalesOrg" - }, - "user": { - "id": "3f2e1d4c-9b8a-7e6f-5d4c-3b2a1e0f9d8c", - "name": "new_sales_user@example.com" - }, - "creation_time_in_millis": 1724278000000, - "expiration_time_in_millis": 1724278300000 - } - } } } } @@ -2772,21 +2342,6 @@ "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": "Invalid persistOption: 'APPEND'. Expected: 'RESET' when resetOption is provided." - } - } - } - } } } } @@ -2797,21 +2352,6 @@ "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": "Invalid credentials. The provided secret key or password is incorrect." - } - } - } - } } } } @@ -2822,21 +2362,6 @@ "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": "Trusted authentication is not enabled for this cluster or org." - } - } - } - } } } } @@ -2847,21 +2372,6 @@ "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 generating the custom access token." - } - } - } - } } } } @@ -2896,36 +2406,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/Token" - }, - "examples": { - "example_1": { - "description": "Full-access token generated using cluster secret key", - "value": { - "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.example_full_token.signature", - "creation_time_in_millis": 1724277430000, - "expiration_time_in_millis": 1724277730000, - "scope": { - "access_type": "FULL", - "org_id": 0 - }, - "valid_for_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "valid_for_username": "tsadmin" - } - }, - "example_2": { - "description": "Full-access token for a JIT-provisioned user in a specific org", - "value": { - "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.example_jit_full_token.signature", - "creation_time_in_millis": 1724278000000, - "expiration_time_in_millis": 1724278300000, - "scope": { - "access_type": "FULL", - "org_id": 1 - }, - "valid_for_user_id": "b3d9e1f7-2a4c-4e8b-9d1f-6c5a3b8e7d2f", - "valid_for_username": "jit_analyst@example.com" - } - } } } } @@ -2936,21 +2416,6 @@ "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": "Either secret_key or password must be provided." - } - } - } - } } } } @@ -2961,21 +2426,6 @@ "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": "Invalid credentials. The provided secret key or password is incorrect." - } - } - } - } } } } @@ -2986,21 +2436,6 @@ "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": "Trusted authentication is not enabled for this cluster or org." - } - } - } - } } } } @@ -3011,21 +2446,6 @@ "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 generating the full-access token." - } - } - } - } } } } @@ -3060,38 +2480,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/Token" - }, - "examples": { - "example_1": { - "description": "Object-scoped access token for a specific liveboard", - "value": { - "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.example_object_token.signature", - "creation_time_in_millis": 1724277430000, - "expiration_time_in_millis": 1724277730000, - "scope": { - "access_type": "REPORT_BOOK_VIEW", - "org_id": 0, - "metadata_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479" - }, - "valid_for_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "valid_for_username": "tsadmin" - } - }, - "example_2": { - "description": "Object-scoped token with JIT user provisioning", - "value": { - "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.example_jit_object_token.signature", - "creation_time_in_millis": 1724278000000, - "expiration_time_in_millis": 1724278300000, - "scope": { - "access_type": "REPORT_BOOK_VIEW", - "org_id": 0, - "metadata_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - }, - "valid_for_user_id": "7e4c9f2a-8b5d-4a1e-9c3b-6d8e2f5a7b4c", - "valid_for_username": "new_user@example.com" - } - } } } } @@ -3102,21 +2490,6 @@ "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": "Either secret_key or password must be provided." - } - } - } - } } } } @@ -3127,21 +2500,6 @@ "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": "Invalid credentials. The provided secret key or password is incorrect." - } - } - } - } } } } @@ -3152,21 +2510,6 @@ "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": "Trusted authentication is not enabled for this cluster or org." - } - } - } - } } } } @@ -3177,21 +2520,6 @@ "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 generating the object-scoped access token." - } - } - } - } } } } @@ -3229,21 +2557,6 @@ "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": "The specified org_identifier does not refer to a valid or accessible org." - } - } - } - } } } } @@ -3254,21 +2567,6 @@ "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 failed. Verify that the username and password are correct." - } - } - } - } } } } @@ -3279,21 +2577,6 @@ "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": "User account is inactive or locked." - } - } - } - } } } } @@ -3304,21 +2587,6 @@ "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 during login." - } - } - } - } } } } @@ -3355,21 +2623,6 @@ "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": "No active session found. User is not logged in." - } - } - } - } } } } @@ -3390,21 +2643,6 @@ "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 during logout." - } - } - } - } } } } @@ -3441,21 +2679,6 @@ "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": "Either user_identifier or token must be provided." - } - } - } - } } } } @@ -3466,21 +2689,6 @@ "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 revoke a token." - } - } - } - } } } } @@ -3491,21 +2699,6 @@ "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 revoke tokens for another user." - } - } - } - } } } } @@ -3516,21 +2709,6 @@ "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 revoking the token." - } - } - } - } } } } @@ -3603,46 +2781,16 @@ "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": "auth_type must be specified and currently only TRUSTED_AUTH is supported." - } - } - } - } - } - } - } - }, - "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 authentication settings." - } - } - } - } + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } @@ -3653,21 +2801,6 @@ "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 or CONTROL_TRUSTED_AUTH privilege required to retrieve authentication settings." - } - } - } - } } } } @@ -3678,21 +2811,6 @@ "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 authentication settings." - } - } - } - } } } } @@ -3726,35 +2844,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/TokenValidationResponse" - }, - "examples": { - "example_1": { - "description": "Valid full-access token", - "value": { - "creation_time_in_millis": 1724277430000, - "expiration_time_in_millis": 1724277730000, - "scope": { - "access_type": "FULL", - "org_id": 0 - }, - "valid_for_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "token_type": "BEARER" - } - }, - "example_2": { - "description": "Valid object-scoped token", - "value": { - "creation_time_in_millis": 1724277430000, - "expiration_time_in_millis": 1724277730000, - "scope": { - "access_type": "REPORT_BOOK_VIEW", - "org_id": 0, - "metadata_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479" - }, - "valid_for_user_id": "7e4c9f2a-8b5d-4a1e-9c3b-6d8e2f5a7b4c", - "token_type": "BEARER" - } - } } } } @@ -3765,36 +2854,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" - }, - "examples": { - "malformed_token": { - "summary": "Malformed token", - "description": "The token cannot be parsed. Both malformed and expired tokens return error code 10002 — the debug field distinguishes the root cause.", - "value": { - "error": { - "message": { - "code": 10002, - "incident_id_guid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "trace_id_guid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "debug": "The provided token is malformed and cannot be parsed." - } - } - } - }, - "expired_token": { - "summary": "Expired token", - "description": "The token signature is valid but the token has passed its expiration time. Both malformed and expired tokens return error code 10002 — the debug field distinguishes the root cause.", - "value": { - "error": { - "message": { - "code": 10002, - "incident_id_guid": "a1b2c3d4-e5f6-7890-abcf-ef1234567891", - "trace_id_guid": "a1b2c3d4-e5f6-7890-abcf-ef1234567891", - "debug": "The provided token has expired." - } - } - } - } } } } @@ -3805,21 +2864,6 @@ "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 validate a token." - } - } - } - } } } } @@ -3840,21 +2884,6 @@ "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 validating the token." - } - } - } - } } } } @@ -4471,7 +3500,7 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\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#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"databases\": [\"DB1\", \"DB2\"],\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n**NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n#### Create a connection with tables\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**) and `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege is required.\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n* Name of the connection.\n* Type of the data warehouse to connect to.\n* A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"databases\": [\"DB1\", \"DB2\", \"AllDatatypes\"],\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n**NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\nThe optional `databases` property in `data_warehouse_config` accepts a list of database names. When specified, ThoughtSpot persists this list on the connection and uses it to scope metadata fetching to only the specified databases in subsequent table add and remove operations. If omitted, all databases in the data warehouse are accessible for metadata operations.\n\nThe `databases` and `externalDatabases` serve different purposes. `databases` is a flat list of database names that controls which databases are scanned during metadata operations. `externalDatabases` defines the full table hierarchy and determines which tables are linked into ThoughtSpot.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\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#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n**NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n#### Create a connection with tables\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**) and `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege is required.\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n**NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -5244,7 +4273,7 @@ "/api/rest/2.0/connections/{connection_identifier}/update": { "post": { "operationId": "updateConnectionV2", - "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\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\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n * This is an example of updating a single table in a empty connection:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"databases\": [\"DB2\", \"DB3\", \"DEVELOPMENT\"],\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"DEMORENAME\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"Col1\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col2\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col3\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col312\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col4\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n \n* This is an example of updating a single table in an existing connection with tables:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"databases\": [\"DB2\", \"DB3\", \"DEVELOPMENT\"],\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"CUSTOMER\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [],\n \"relationships\": []\n },\n {\n \"name\": \"tpch5k_falcon_default_schema_users\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"user_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"product_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"user_cost\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"databases\":[\"DB1\", \"DB2\"],\n \"externalDatabases\":[\n\n ]\n }\n ```\n\nThe optional `databases` property in `data_warehouse_config` accepts a list of database names. When specified, ThoughtSpot persists this list on the connection and uses it to scope metadata fetching to only the specified databases in subsequent table add and remove operations. If omitted, all databases in the data warehouse are accessible for metadata operations.\n\nThe `databases` and `externalDatabases` serve different purposes. `databases` is a flat list of database names that controls which databases are scanned during metadata operations. `externalDatabases` defines the full table hierarchy and determines which tables are linked into ThoughtSpot.\n\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\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\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n * This is an example of updating a single table in a empty connection:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"DEMORENAME\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"Col1\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col2\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col3\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col312\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col4\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n \n* This is an example of updating a single table in an existing connection with tables:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"CUSTOMER\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [],\n \"relationships\": []\n },\n {\n \"name\": \"tpch5k_falcon_default_schema_users\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"user_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"product_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"user_cost\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "10.4.0.cl" @@ -5371,21 +4400,6 @@ "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": "A custom action with the same name already exists. The custom action name must be unique." - } - } - } - } } } } @@ -5396,21 +4410,6 @@ "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 custom action." - } - } - } - } } } } @@ -5421,21 +4420,6 @@ "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 custom actions." - } - } - } - } } } } @@ -5446,21 +4430,6 @@ "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 custom action." - } - } - } - } } } } @@ -5497,21 +4466,6 @@ "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": "Custom action with the specified identifier was not found." - } - } - } - } } } } @@ -5522,21 +4476,6 @@ "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 a custom action." - } - } - } - } } } } @@ -5547,21 +4486,6 @@ "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 custom actions." - } - } - } - } } } } @@ -5572,21 +4496,6 @@ "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 the custom action." - } - } - } - } } } } @@ -5651,21 +4560,6 @@ "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": "Custom action identifier is invalid or malformed." - } - } - } - } } } } @@ -5676,21 +4570,6 @@ "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 custom actions." - } - } - } - } } } } @@ -5707,25 +4586,10 @@ }, "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 custom actions." - } - } - } - } + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } @@ -5772,21 +4636,6 @@ "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": "Custom action with the specified identifier was not found." - } - } - } - } } } } @@ -5797,21 +4646,6 @@ "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 custom action." - } - } - } - } } } } @@ -5822,21 +4656,6 @@ "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 custom actions." - } - } - } - } } } } @@ -5847,21 +4666,6 @@ "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 custom action." - } - } - } - } } } } @@ -6236,7 +5040,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CAN_DOWNLOAD_DETAILED_DATA` (**Can download detailed data**) privilege is also required.\n\nThe `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis).\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis).\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -6309,7 +5113,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \n\nRequires at least view access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CAN_DOWNLOAD_DETAILED_DATA` (**Can download detailed data**) privilege is also required.\n\n#### Usage guidelines\n\nIn the request body, specify the GUID or name of the Liveboard. To get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\n\nTo include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes. If the new Liveboard experience mode, the transient content includes ad hoc changes to visualizations such as sorting, toggling of legends, and data drill down.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api).\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \n\nRequires at least view access to the Liveboard.\n\n#### Usage guidelines\n\nIn the request body, specify the GUID or name of the Liveboard. To get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\n\nTo include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes. If the new Liveboard experience mode, the transient content includes ad hoc changes to visualizations such as sorting, toggling of legends, and data drill down.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api).\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -6382,7 +5186,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CAN_DOWNLOAD_DETAILED_DATA` (**Can download detailed data**) privilege is also required.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor more information about the `query_string` format and data source attribute, see [Search data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api). \n\nThe `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_api). \n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View).\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor more information about the `query_string` format and data source attribute, see [Search data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api). \n\nThe `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_api). \n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -7302,205 +6106,20 @@ "Email Customization", "10.12.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateEmailCustomizationRequest" - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Email Customization 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": "Unauthorized 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/customization/email/validate": { - "post": { - "operationId": "validateEmailCustomization", - "description": "\nBeta Version: 10.10.0.cl or later\n\nValidates the email customization configuration if any set for the ThoughtSpot system.\n\n#### Pre-requisites\n\nRequires `DEVELOPER` (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n**NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Email Customization", - "10.10.0.cl" - ], - "parameters": [], - "responses": { - "204": { - "description": "Triggered test email for customization configuration" - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Unauthorized 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/groups/create": { - "post": { - "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n#### About groups\nGroups in ThoughtSpot are used by the administrators to define privileges and organize users based on their roles and access requirements. To know more about groups and privileges, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/groups-privileges).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign privileges\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateUserGroupRequest" - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - }, - "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/groups/{group_identifier}/delete": { - "post": { - "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateEmailCustomizationRequest" + } + } + }, + "required": true + }, + "parameters": [], "responses": { "204": { - "description": "User group successfully deleted." + "description": "Email Customization configuration successfully updated." }, "400": { "description": "Invalid request.", @@ -7523,7 +6142,7 @@ } }, "403": { - "description": "Forbidden access.", + "description": "Unauthorized access.", "content": { "application/json": { "schema": { @@ -7545,35 +6164,18 @@ } } }, - "/api/rest/2.0/groups/import": { + "/api/rest/2.0/customization/email/validate": { "post": { - "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* If the specified groups are already available in ThoughtSpot, the object properties of these groups are modified and synchronized as per the input data in the API request.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "validateEmailCustomization", + "description": "\nBeta Version: 10.10.0.cl or later\n\nValidates the email customization configuration if any set for the ThoughtSpot system.\n\n#### Pre-requisites\n\nRequires `DEVELOPER` (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n**NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Groups", - "9.0.0.cl" + "Email Customization", + "10.10.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUserGroupsRequest" - } - } - }, - "required": true - }, "parameters": [], "responses": { - "200": { - "description": "Import user groups operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" - } - } - } + "204": { + "description": "Triggered test email for customization configuration" }, "400": { "description": "Invalid request.", @@ -7585,18 +6187,8 @@ } } }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, "403": { - "description": "Forbidden access.", + "description": "Unauthorized access.", "content": { "application/json": { "schema": { @@ -7618,10 +6210,10 @@ } } }, - "/api/rest/2.0/groups/search": { + "/api/rest/2.0/groups/create": { "post": { - "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of user group objects from the ThoughtSpot system.\n\nTo get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "createUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n#### About groups\nGroups in ThoughtSpot are used by the administrators to define privileges and organize users based on their roles and access requirements. To know more about groups and privileges, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/groups-privileges).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign privileges\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -7630,7 +6222,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchUserGroupsRequest" + "$ref": "#/components/schemas/CreateUserGroupRequest" } } }, @@ -7639,14 +6231,11 @@ "parameters": [], "responses": { "200": { - "description": "User group search result.", + "description": "User group successfully created.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } + "$ref": "#/components/schemas/UserGroupResponse" } } } @@ -7694,24 +6283,14 @@ } } }, - "/api/rest/2.0/groups/{group_identifier}/update": { + "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { - "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateUserGroupRequest" - } - } - }, - "required": true - }, "parameters": [ { "in": "path", @@ -7725,7 +6304,7 @@ ], "responses": { "204": { - "description": "User group successfully updated." + "description": "User group successfully deleted." }, "400": { "description": "Invalid request.", @@ -7770,19 +6349,19 @@ } } }, - "/api/rest/2.0/input-tables/create": { + "/api/rest/2.0/groups/import": { "post": { - "operationId": "createInputTable", - "description": "\n Version: 26.8.0.cl or later\n\nVersion: 26.8.0.cl or later\n\nCreates an input table and links it to a ThoughtSpot model (worksheet). An input table is a user-editable table stored in the model's external Cloud Data Warehouse (CDW) connection. It lets analysts enter or import data directly from the ThoughtSpot UI without requiring access to the underlying warehouse.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_INPUT_TABLES` (**Can manage input tables**) privilege is required.\n\n#### Usage guidelines\n\nTo create an input table, provide the following in the request body:\n\n* **`table_name`** — Physical name of the table to create in the external warehouse.\n* **`model_identifier`** — GUID or name of the model (worksheet) to link the input table to. The connection, database, and schema used to create the physical table are derived from this model's metadata.\n* **`table_definition`** — Describes the table schema:\n * `referenced_columns` — List of column GUIDs from the linked model to include as read-only reference columns in the input table. These columns anchor the input data to existing model dimensions.\n * `new_columns` — List of new editable columns to create. Each column requires:\n * `name` — Column display name.\n * `data_type` — Warehouse data type (for example, `VARCHAR`, `DOUBLE`, `DATE`).\n * `type` — Semantic role of the column: `ATTRIBUTE` for dimension columns or `MEASURE` for numeric columns.\n\n**Note**: The physical table is created in the same connection, database, and schema as the linked model. Ensure the connection user has `CREATE TABLE` permissions in the target schema.\n\n#### Examples\n\nCreate an input table with one referenced model column and one new editable measure column:\n\n```json\n{\n \"table_name\": \"Sales Region Targets\",\n \"model_identifier\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"table_definition\": {\n \"referenced_columns\": [\"c7d8e9f0-1234-5678-abcd-ef0987654321\"],\n \"new_columns\": [\n {\n \"name\": \"target_revenue\",\n \"data_type\": \"DOUBLE\",\n \"type\": \"MEASURE\"\n }\n ]\n }\n}\n```\n\nCreate an input table with multiple new editable columns and no referenced columns:\n\n```json\n{\n \"table_name\": \"Budget Adjustments\",\n \"model_identifier\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"table_definition\": {\n \"referenced_columns\": [],\n \"new_columns\": [\n {\n \"name\": \"region\",\n \"data_type\": \"VARCHAR\",\n \"type\": \"ATTRIBUTE\"\n },\n {\n \"name\": \"adjustment_amount\",\n \"data_type\": \"DOUBLE\",\n \"type\": \"MEASURE\"\n },\n {\n \"name\": \"effective_date\",\n \"data_type\": \"DATE\",\n \"type\": \"ATTRIBUTE\"\n }\n ]\n }\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "operationId": "importUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* If the specified groups are already available in ThoughtSpot, the object properties of these groups are modified and synchronized as per the input data in the API request.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Input Tables", - "26.8.0.cl" + "Groups", + "9.0.0.cl" ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateInputTableRequest" + "$ref": "#/components/schemas/ImportUserGroupsRequest" } } }, @@ -7791,25 +6370,17 @@ "parameters": [], "responses": { "200": { - "description": "Input table created successfully.", + "description": "Import user groups operation successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/InputTableResponse" - }, - "examples": { - "example_1": { - "summary": "Input table created successfully", - "value": { - "input_table_identifier": "f47ac10b-58cc-4372-a567-0e02b2c3d479" - } - } + "$ref": "#/components/schemas/ImportUserGroupsResponse" } } } }, "400": { - "description": "Bad request — invalid payload, no columns selected, or upload disabled on the connection.", + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -7829,17 +6400,7 @@ } }, "403": { - "description": "Forbidden — caller does not have MODIFY permission on the model.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "404": { - "description": "Model not found.", + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -7849,7 +6410,7 @@ } }, "500": { - "description": "Unexpected error.", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7861,31 +6422,41 @@ } } }, - "/api/rest/2.0/input-tables/{input_table_identifier}/delete": { + "/api/rest/2.0/groups/search": { "post": { - "operationId": "deleteInputTable", - "description": "\n Version: 26.8.0.cl or later\n\nVersion: 26.8.0.cl or later\n\nDeletes an input table. This operation unlinks the input table from its owner model, removes it from the connection metadata, and drops the physical table from the Cloud Data Warehouse (CDW). This action is irreversible — all data stored in the input table is permanently deleted.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_INPUT_TABLES` (**Can manage input tables**) privilege is required.\n\n#### Usage guidelines\n\nSpecify the GUID of the input table to delete as the `input_table_identifier` path parameter. The owner model (worksheet) is derived from the input table's metadata and is used to locate and clean up the associated connection entry.\n\n**Note**: Deleting an input table does not delete the linked model. However, any Answers or Liveboards that reference columns from the deleted input table will lose access to that data and may return errors until the affected visualizations are updated.\n\n#### Example\n\nPass the input table GUID as a path parameter. This endpoint has no request body.\n\n```\nDELETE /api/rest/2.0/input-tables/a1b2c3d4-e5f6-7890-abcd-ef1234567890/delete\n```\n\n\n\n\n#### Endpoint URL\n", + "operationId": "searchUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of user group objects from the ThoughtSpot system.\n\nTo get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Input Tables", - "26.8.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "input_table_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID of the input table to delete." - } + "Groups", + "9.0.0.cl" ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchUserGroupsRequest" + } + } + }, + "required": true + }, + "parameters": [], "responses": { - "204": { - "description": "Successfully deleted the input table and dropped the physical CDW table." + "200": { + "description": "User group search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + } }, "400": { - "description": "Operation failed", + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -7915,7 +6486,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7927,19 +6498,19 @@ } } }, - "/api/rest/2.0/input-tables/{input_table_identifier}/update": { + "/api/rest/2.0/groups/{group_identifier}/update": { "post": { - "operationId": "updateInputTable", - "description": "\n Version: 26.8.0.cl or later\n\nVersion: 26.8.0.cl or later\n\nWrites rows of data into an existing input table. The supplied rows replace the current contents of the table: each call serializes the provided values to CSV and loads them into the input table via DataManager, overwriting any previously stored rows.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_INPUT_TABLES` (**Can manage input tables**) privilege is required. The caller must also have `MODIFY` permission on the input table object.\n\n#### Usage guidelines\n\nSpecify the input table GUID as the `input_table_identifier` path parameter and provide the row data in the request body:\n\n* **`columns`** — Ordered list of column names to write. Column names must exactly match the names defined when the input table was created. Only the listed columns are written; unlisted columns retain their existing values.\n* **`rows`** — List of rows to load. Each row is an array of string values in the same order as `columns`. All cell values must be passed as strings regardless of the column's underlying data type.\n\n**Note**: Each call fully replaces the previously loaded rows. To clear the table, send an empty `rows` array. Partial updates to individual rows are not supported; re-submit all rows on every write.\n\n#### Examples\n\nWrite two rows to an input table. Pass the input table GUID as the\n`input_table_identifier` path parameter:\n\n```\nPOST /api/rest/2.0/input-tables/{input_table_identifier}/update\n```\n\n```json\n{\n \"columns\": [\"region\", \"target_revenue\", \"effective_date\"],\n \"rows\": [\n [\"West\", \"1500000\", \"2025-01-01\"],\n [\"East\", \"2000000\", \"2025-01-01\"]\n ]\n}\n```\n\nThe response returns the number of rows written:\n\n```json\n{ \"rows_loaded\": 2 }\n```\n\nClear all rows from an input table:\n\n```json\n{\n \"columns\": [\"region\", \"target_revenue\"],\n \"rows\": []\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "operationId": "updateUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Input Tables", - "26.8.0.cl" + "Groups", + "9.0.0.cl" ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateInputTableRequest" + "$ref": "#/components/schemas/UpdateUserGroupRequest" } } }, @@ -7948,35 +6519,20 @@ "parameters": [ { "in": "path", - "name": "input_table_identifier", + "name": "group_identifier", "required": true, "schema": { "type": "string" }, - "description": "Unique ID of the input table to update." + "description": "GUID or name of the group." } ], "responses": { - "200": { - "description": "Rows loaded successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InputTableUpdateResponse" - }, - "examples": { - "example_1": { - "summary": "Rows loaded successfully", - "value": { - "rows_loaded": 3 - } - } - } - } - } + "204": { + "description": "User group successfully updated." }, "400": { - "description": "Malformed request or unknown column name.", + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -7996,17 +6552,7 @@ } }, "403": { - "description": "Forbidden — caller does not have MODIFY permission on the input table.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "404": { - "description": "Input table not found.", + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8016,7 +6562,7 @@ } }, "500": { - "description": "Unexpected error.", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -8143,21 +6689,6 @@ "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": "channel_type must be specified. Currently only WEBHOOK is supported." - } - } - } - } } } } @@ -8168,21 +6699,6 @@ "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 channel delivery history." - } - } - } - } } } } @@ -8193,46 +6709,16 @@ "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 channel delivery history." - } - } - } - } } } } }, "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 channel delivery history." - } - } - } - } + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } @@ -10536,7 +9022,7 @@ "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires at least edit access to Liveboards. To create a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required.\n\nIf RBAC is enabled, creating a schedule also requires the download privilege that corresponds to the selected `file_format`: `CSV` and `XLSX` require the `CAN_DOWNLOAD_DETAILED_DATA` (**Can download detailed data**) privilege, and `PDF` requires the `CAN_DOWNLOAD_VISUALS` (**Can download visuals**) privilege.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* For Liveboards with both charts and tables, schedule creation is only supported in PDF and XLS formats. Schedules created in CSV formats for such Liveboards will fail to run. If `PDF` is set as the `file_format`, enable `pdf_options` to get the correct attachment. Not doing so may cause the attachment to be rendered empty.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* You can schedule a Liveboard job to run periodically by setting frequency parameters. You can set the schedule to run daily, weekly, monthly or every n minutes or hours. The scheduled job can also be configured to run at a specific time of the day or on specific days of the week or month. Please ensure that when setting the schedule frequency for _minute of the object_, only values that are multiples of 5 are included.\n* If the `frequency` parameters are defined, you can set the time zone to a value that matches your server's time zone. For example, `US/Central`, `Etc/UTC`, `CET`. The default time zone is `America/Los_Angeles`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n#### Endpoint URL\n", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires at least edit access to Liveboards. To create a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* For Liveboards with both charts and tables, schedule creation is only supported in PDF and XLS formats. Schedules created in CSV formats for such Liveboards will fail to run. If `PDF` is set as the `file_format`, enable `pdf_options` to get the correct attachment. Not doing so may cause the attachment to be rendered empty.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* You can schedule a Liveboard job to run periodically by setting frequency parameters. You can set the schedule to run daily, weekly, monthly or every n minutes or hours. The scheduled job can also be configured to run at a specific time of the day or on specific days of the week or month. Please ensure that when setting the schedule frequency for _minute of the object_, only values that are multiples of 5 are included.\n* If the `frequency` parameters are defined, you can set the time zone to a value that matches your server's time zone. For example, `US/Central`, `Etc/UTC`, `CET`. The default time zone is `America/Los_Angeles`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -10751,7 +9237,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires at least edit access to Liveboards. To update a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required.\n\nIf RBAC is enabled, changing a schedule's `file_format` also requires the download privilege that corresponds to the selected format: `CSV` and `XLSX` require the `CAN_DOWNLOAD_DETAILED_DATA` (**Can download detailed data**) privilege, and `PDF` requires the `CAN_DOWNLOAD_VISUALS` (**Can download visuals**) privilege.\n\nThe API endpoint allows you to pause a scheduled job, change the status of a paused job. You can also edit the recipients list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone setting.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires at least edit access to Liveboards. To update a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required.\n\nThe API endpoint allows you to pause a scheduled job, change the status of a paused job. You can also edit the recipients list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone setting.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -11807,21 +10293,6 @@ "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 export style logos." - } - } - } - } } } } @@ -11832,21 +10303,6 @@ "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": "Cluster-level logos can only be exported from PRIMARY org." - } - } - } - } } } } @@ -11857,21 +10313,6 @@ "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 exporting style logos." - } - } - } - } } } } @@ -12440,7 +10881,7 @@ "/api/rest/2.0/customization/styles/update": { "post": { "operationId": "updateStyleCustomization", - "description": "\n Version: 26.7.0.cl or later\n\nUpdates style preferences at cluster level or for the authenticated user's org, including navigation panel color, chart color palette, embedded footer text, logo, and font assignments per visualization area. Cluster-level preferences serve as defaults for all orgs. Org-level preferences override cluster defaults. Resetting an Org-level preference falls back to Cluster-level preference, which on reset falls back to system defaults.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\n\n#### Usage guidelines\n\nTwo operations are supported via the `operation` field:\n\n- **REPLACE** (default): Applies the fields provided in the request. Omitted fields remain unchanged.\n- **RESET**: Reverts specific fields to defaults. Specify which fields to reset using `reset_options.style` (for style fields) and `reset_options.visualization_areas` (for font assignments). Fields not listed in `reset_options` are not affected.\n\n#### Logo upload\n\nLogo files are uploaded as binary fields using `multipart/form-data`:\n\n- `default_logo`: Square app icon and favicon. Recommended size: 140×140 px. Accepted formats: PNG, JPG.\n- `wide_logo`: Horizontal top nav bar logo. Recommended size: 230×45 px. Accepted formats: PNG, JPG.\n\nTo reset a logo to the default, use `operation: RESET` with `reset_options.style` set to `DEFAULT_LOGO` or `WIDE_LOGO`.\n\n#### Navigation panel color\n\nSet `navigation_panel.theme` to one of:\n\n- `DARK`: Default dark theme.\n- `TWO_TONE`: Dual-tone panel style.\n- `CUSTOM`: User-defined color. Provide `navigation_panel.base_color` as a 6-digit hex string (e.g. `#2359B6`).\n\n#### Chart color palette\n\nProvide exactly 8 color entries in `chart_color_palette.colors`. Each entry requires a `primary` hex color. If `secondary` shades are omitted, the server auto-generates 4 shades from the primary color.\n\n#### Font assignments\n\nSpecify `visualization_fonts.chart_visualization_fonts`, `visualization_fonts.table_visualization_fonts`, and `visualization_fonts.advanced_chart_visualization_fonts` to assign custom fonts to specific visualization areas. Only provide the areas you want to update; omitted areas remain unchanged.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 26.7.0.cl or later\n\nUpdates style preferences at cluster level or for the authenticated user's org, including navigation panel color, chart color palette, embedded footer text, logo, and font assignments per visualization area. Cluster-level preferences serve as defaults for all orgs. Org-level preferences override cluster defaults. Resetting an Org-level preference falls back to Cluster-level preference, which on reset falls back to system defaults.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\n\n#### Usage guidelines\n\nTwo operations are supported via the `operation` field:\n\n- **REPLACE** (default): Applies the fields provided in the request. Omitted fields remain unchanged.\n- **RESET**: Reverts specific fields to defaults. Specify which fields to reset using `reset_options.style` (for style fields) and `reset_options.visualization_areas` (for font assignments). Fields not listed in `reset_options` are not affected.\n\n#### Logo upload\n\nLogo files are uploaded as binary fields using `multipart/form-data`:\n\n- `default_logo`: Square app icon and favicon. Recommended size: 140×140 px. Accepted formats: PNG, JPG.\n- `wide_logo`: Horizontal top nav bar logo. Recommended size: 230×45 px. Accepted formats: PNG, JPG.\n\nTo reset a logo to the default, use `operation: RESET` with `reset_options.style` set to `DEFAULT_LOGO` or `WIDE_LOGO`.\n\n#### Navigation panel color\n\nSet `navigation_panel.theme` to one of:\n\n- `DARK`: Default dark theme.\n- `TWO_TONE`: Dual-tone panel style.\n- `CUSTOM`: User-defined color. Provide `navigation_panel.base_color` as a 6-digit hex string (e.g. `#2359B6`).\n\n#### Chart color palette\n\nProvide exactly 8 color entries in `chart_color_palette.colors`. Each entry requires a `primary` hex color. If `secondary` shades are omitted, the server auto-generates 4 shades from the primary color.\n\n#### Font assignments\n\nSpecify `visualization_fonts.chart_visualization_fonts` and `visualization_fonts.table_visualization_fonts` to assign custom fonts to specific visualization areas. Only provide the areas you want to update; omitted areas remain unchanged.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Style Customization", "26.7.0.cl" @@ -12549,21 +10990,6 @@ "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": "chart_color_palette must specify exactly 8 color entries when operation is REPLACE." - } - } - } - } } } } @@ -12574,21 +11000,6 @@ "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 style customization preferences." - } - } - } - } } } } @@ -12599,21 +11010,6 @@ "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": "Cluster-level style customization can only be updated from PRIMARY org." - } - } - } - } } } } @@ -12624,21 +11020,6 @@ "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 style customization preferences." - } - } - } - } } } } @@ -12685,21 +11066,6 @@ "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": "Font color must be a valid 6-digit hex string (e.g. '#333333')." - } - } - } - } } } } @@ -12710,21 +11076,6 @@ "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 custom font." - } - } - } - } } } } @@ -12735,21 +11086,6 @@ "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": "Only Tenant admin can update cluster-level fonts." - } - } - } - } } } } @@ -12760,21 +11096,6 @@ "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 custom font." - } - } - } - } } } } @@ -13000,21 +11321,6 @@ "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." - } - } - } - } } } } @@ -13025,21 +11331,6 @@ "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." - } - } - } - } } } } @@ -13050,21 +11341,6 @@ "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." - } - } - } - } } } } @@ -13075,21 +11351,6 @@ "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." - } - } - } - } } } } @@ -13126,21 +11387,6 @@ "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": "groups_identifiers_with_access can only be set when block_full_app_access is true." - } - } - } - } } } } @@ -13151,21 +11397,6 @@ "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 security settings." - } - } - } - } } } } @@ -13176,21 +11407,6 @@ "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 security settings." - } - } - } - } } } } @@ -13201,21 +11417,6 @@ "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 security settings." - } - } - } - } } } } @@ -13268,21 +11469,6 @@ "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 system configuration." - } - } - } - } } } } @@ -13293,21 +11479,6 @@ "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 system configuration." - } - } - } - } } } } @@ -13318,21 +11489,6 @@ "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 system configuration." - } - } - } - } } } } @@ -13405,21 +11561,6 @@ "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 system information." - } - } - } - } } } } @@ -13430,21 +11571,6 @@ "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 system information." - } - } - } - } } } } @@ -13455,21 +11581,6 @@ "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 system information." - } - } - } - } } } } @@ -13493,25 +11604,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SystemOverrideInfo" - }, - "examples": { - "example_1": { - "description": "System configuration overrides. The config_override_info field is a free-form JSON object whose keys are camelCase internal configuration property identifiers as returned by the server.", - "value": { - "config_override_info": { - "maxTableRowsPerPage": 500, - "enableCustomCalendar": true, - "allowMultipleOrgs": true, - "sessionTimeout": 3600 - } - } - }, - "example_2": { - "description": "No configuration overrides applied", - "value": { - "config_override_info": {} - } - } } } } @@ -13532,21 +11624,6 @@ "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 system configuration overrides." - } - } - } - } } } } @@ -13557,21 +11634,6 @@ "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 system configuration overrides." - } - } - } - } } } } @@ -13582,21 +11644,6 @@ "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 system configuration overrides." - } - } - } - } } } } @@ -13670,21 +11717,6 @@ "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." - } - } - } - } } } } @@ -13695,21 +11727,6 @@ "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." - } - } - } - } } } } @@ -13720,21 +11737,6 @@ "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." - } - } - } - } } } } @@ -13745,21 +11747,6 @@ "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." - } - } - } - } } } } @@ -13867,21 +11854,6 @@ "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": "scope must be one of CLUSTER or ORG." - } - } - } - } } } } @@ -13892,46 +11864,16 @@ "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 security settings." - } - } - } - } } } } - }, - "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 security settings." - } - } - } - } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } @@ -13942,21 +11884,6 @@ "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 security settings." - } - } - } - } } } } @@ -13993,21 +11920,6 @@ "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": "The configuration JSON contains an unknown or unsupported key." - } - } - } - } } } } @@ -14018,21 +11930,6 @@ "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 system configuration." - } - } - } - } } } } @@ -14043,21 +11940,6 @@ "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 update system configuration." - } - } - } - } } } } @@ -14068,21 +11950,6 @@ "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 system configuration." - } - } - } - } } } } @@ -14116,86 +11983,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/CommunicationChannelValidateResponse" - }, - "examples": { - "example_1": { - "description": "Successful webhook validation with HTTP check only", - "value": { - "channel_type": "WEBHOOK", - "channel_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", - "channel_name": "My Liveboard Webhook", - "event_type": "LIVEBOARD_SCHEDULE", - "job_id": "9a8b7c6d-5e4f-3210-fedc-ba9876543210", - "result_code": "SUCCESS", - "details": [ - { - "validation_step": "HTTP_CONNECTION_CHECK", - "status": "SUCCESS", - "http_status": 200, - "error_message": null, - "aws_s3_info": null - } - ] - } - }, - "example_2": { - "description": "Successful webhook validation with both HTTP and S3 storage checks", - "value": { - "channel_type": "WEBHOOK", - "channel_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "channel_name": "S3 Storage Webhook", - "event_type": "LIVEBOARD_SCHEDULE", - "job_id": "b2c3d4e5-f678-9012-bcde-f23456789012", - "result_code": "SUCCESS", - "details": [ - { - "validation_step": "HTTP_CONNECTION_CHECK", - "status": "SUCCESS", - "http_status": 200, - "error_message": null, - "aws_s3_info": null - }, - { - "validation_step": "STORAGE_FILE_UPLOAD_CHECK", - "status": "SUCCESS", - "http_status": null, - "error_message": null, - "aws_s3_info": { - "bucket_name": "my-webhook-files", - "file_name": "thoughtspot-validation-test.json", - "object_key": "webhooks/thoughtspot-validation-test.json" - } - } - ] - } - }, - "example_3": { - "description": "Partial success: HTTP check passed but S3 upload failed", - "value": { - "channel_type": "WEBHOOK", - "channel_id": "c3d4e5f6-7890-1234-cdef-345678901234", - "channel_name": "Failed S3 Webhook", - "event_type": "LIVEBOARD_SCHEDULE", - "job_id": "d4e5f678-9012-3456-defa-456789012345", - "result_code": "PARTIAL_SUCCESS", - "details": [ - { - "validation_step": "HTTP_CONNECTION_CHECK", - "status": "SUCCESS", - "http_status": 200, - "error_message": null, - "aws_s3_info": null - }, - { - "validation_step": "STORAGE_FILE_UPLOAD_CHECK", - "status": "FAILED", - "http_status": null, - "error_message": "Access denied. Ensure the IAM role has s3:PutObject permission on the target bucket.", - "aws_s3_info": null - } - ] - } - } } } } @@ -14206,21 +11993,6 @@ "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 channel_identifier was not found." - } - } - } - } } } } @@ -14231,21 +12003,6 @@ "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 validate a communication channel." - } - } - } - } } } } @@ -14256,21 +12013,6 @@ "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 validate communication channels." - } - } - } - } } } } @@ -14281,21 +12023,6 @@ "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 validating the communication channel." - } - } - } - } } } } @@ -16811,21 +14538,6 @@ "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." - } - } - } - } } } } @@ -16836,21 +14548,6 @@ "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." - } - } - } - } } } } @@ -16861,21 +14558,6 @@ "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." - } - } - } - } } } } @@ -16886,21 +14568,6 @@ "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." - } - } - } - } } } } @@ -17012,7 +14679,7 @@ "LIVEBOARD_SCHEDULE" ], "authentication": { - "BEARER_TOKEN": "***" + "NO_AUTH": "" }, "creation_time_in_millis": 1724276415456, "modification_time_in_millis": 1724276415456, @@ -17026,7 +14693,7 @@ { "id": "a3f7c1e4-9b2d-4a6e-8f3c-1e5b7a9c4f2e", "name": "Non-existent Webhook", - "error": "Webhook not found or access denied" + "error_message": "Webhook not found or access denied" } ] } @@ -17041,46 +14708,16 @@ "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." - } - } - } - } + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } @@ -17091,21 +14728,6 @@ "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." - } - } - } - } } } } @@ -17116,21 +14738,6 @@ "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." - } - } - } - } } } } @@ -17308,21 +14915,6 @@ "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." - } - } - } - } } } } @@ -17333,21 +14925,6 @@ "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." - } - } - } - } } } } @@ -17358,21 +14935,6 @@ "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." - } - } - } - } } } } @@ -17513,21 +15075,6 @@ "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." - } - } - } - } } } } @@ -17538,21 +15085,6 @@ "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." - } - } - } - } } } } @@ -17563,21 +15095,6 @@ "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." - } - } - } - } } } } @@ -17588,21 +15105,6 @@ "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." - } - } - } - } } } } @@ -17649,21 +15151,6 @@ "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." - } - } - } - } } } } @@ -17674,21 +15161,6 @@ "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." - } - } - } - } } } } @@ -17699,21 +15171,6 @@ "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." - } - } - } - } } } } @@ -17724,21 +15181,6 @@ "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." - } - } - } - } } } } @@ -19161,10 +16603,9 @@ "USER", "USER_GROUP", "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC", - "COLLECTION" + "INSIGHT_SPEC" ], - "description": "Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects\n11. COLLECTION for collection objects", + "description": "Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", "nullable": true }, "subtypes": { @@ -19231,10 +16672,9 @@ "USER", "USER_GROUP", "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC", - "COLLECTION" + "INSIGHT_SPEC" ], - "description": "Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects\n11. COLLECTION for collection objects" + "description": "Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" } } }, @@ -19316,8 +16756,7 @@ "USER", "USER_GROUP", "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC", - "COLLECTION" + "INSIGHT_SPEC" ], "description": "Type of the metadata." }, @@ -22405,41 +19844,6 @@ } } }, - "eureka_MemorySources": { - "type": "object", - "required": [ - "type", - "identifiers" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "DATA_MODEL" - ], - "description": "Source object type for this group. Must be `DATA_MODEL`." - }, - "identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Data-models to export memory for. Each entry may be a GUID or a\nhuman-readable obj_id; the eureka-agent resolves obj_ids before\nforwarding." - } - }, - "description": "A single typed scope group identifying objects whose memory entries\nshould be exported. One group binds a single `type` to a set of\n`identifiers`; pass a list of groups to `exportMemory` to scope the\nexport to multiple objects in one call. Each group maps to one filter\ngroup on the eureka request." - }, - "eureka_ExportMemoryResponse": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "Serialized memory payload (currently YAML). This is the shape\nimportMemory consumes.", - "nullable": true - } - }, - "description": "Response from exportMemory. Contains the serialized payload\nready for local editing and re-submission to importMemory." - }, "VariableDetailInput": { "type": "object", "properties": { @@ -22715,7 +20119,8 @@ "type": "string", "enum": [ "SAGE_INDEXING", - "ROW_COUNT_STATS" + "ROW_COUNT_STATS", + "SCHEDULED_LIVEBOARDS" ] }, "nullable": true @@ -23814,14 +21219,6 @@ }, "description": "Font assignments for table visualization areas.", "nullable": true - }, - "advanced_chart_visualization_fonts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdvancedChartVisualizationFontRecord" - }, - "description": "Font assignments for advanced chart visualization areas.
Version: 26.7.0.cl or later", - "nullable": true } }, "description": "Effective font assignments per visualization type." @@ -23838,42 +21235,13 @@ "CHART_Y_AXIS_TITLE", "CHART_TOOLTIP", "CHART_SCATTER_DATA_LABELS", - "CHART_DONUT_DATA_LABELS", - "CHART_LINE_DATA_LABELS", - "CHART_COLUMN_DATA_LABELS", - "CHART_BAR_DATA_LABELS", - "CHART_AREA_DATA_LABELS" - ], - "description": "Chart visualization area.", - "nullable": true - }, - "font_id": { - "type": "string", - "description": "UUID of the font assigned to this area. Null when the system default font\nis active.", - "nullable": true - }, - "font_name": { - "type": "string", - "description": "Display name of the font assigned to this area. Null when the system\ndefault font is active.", - "nullable": true - }, - "is_overridden": { - "type": "boolean", - "description": "True if explicitly set at this scope, overriding any inherited value.", - "nullable": true - } - }, - "description": "Font assignment for a chart visualization area in the response." - }, - "TableVisualizationFontRecord": { - "type": "object", - "properties": { - "visualization_area": { - "type": "string", - "enum": [ - "TABLE_VALUE_CELLS" + "CHART_DONUT_DATA_LABELS", + "CHART_LINE_DATA_LABELS", + "CHART_COLUMN_DATA_LABELS", + "CHART_BAR_DATA_LABELS", + "CHART_AREA_DATA_LABELS" ], - "description": "Table visualization area.", + "description": "Chart visualization area.", "nullable": true }, "font_id": { @@ -23892,17 +21260,17 @@ "nullable": true } }, - "description": "Font assignment for a table visualization area in the response." + "description": "Font assignment for a chart visualization area in the response." }, - "AdvancedChartVisualizationFontRecord": { + "TableVisualizationFontRecord": { "type": "object", "properties": { "visualization_area": { "type": "string", "enum": [ - "ADVANCED_CHART_LABELS" + "TABLE_VALUE_CELLS" ], - "description": "Advanced chart visualization area.", + "description": "Table visualization area.", "nullable": true }, "font_id": { @@ -23921,7 +21289,7 @@ "nullable": true } }, - "description": "Font assignment for an advanced chart visualization area in the response." + "description": "Font assignment for a table visualization area in the response." }, "StyleFontRecord": { "type": "object", @@ -24018,8 +21386,7 @@ "CHART_COLUMN_DATA_LABELS", "CHART_BAR_DATA_LABELS", "CHART_AREA_DATA_LABELS", - "TABLE_VALUE_CELLS", - "ADVANCED_CHART_LABELS" + "TABLE_VALUE_CELLS" ] }, "description": "Visualization areas using this font.", @@ -25715,8 +23082,7 @@ "ACTION_OBJECT", "DATA_SOURCE", "USER", - "USER_GROUP", - "COLLECTION" + "USER_GROUP" ], "description": "Optional type of the header object.", "nullable": true @@ -25770,8 +23136,7 @@ "ACTION_OBJECT", "DATA_SOURCE", "USER", - "USER_GROUP", - "COLLECTION" + "USER_GROUP" ], "description": "Type of metadata. Required if metadata_identifier is name of the object.", "nullable": true @@ -27592,177 +24957,6 @@ } } }, - "eureka_ImportMemoryResponse": { - "type": "object", - "required": [ - "status" - ], - "properties": { - "status": { - "type": "string", - "enum": [ - "SUCCESS", - "VALIDATION_FAILED", - "FAILED" - ], - "description": "Terminal status of the import." - }, - "summary": { - "type": "array", - "items": { - "$ref": "#/components/schemas/eureka_ImportSummary" - }, - "description": "Per (memory type, target source) result entries. Null when the\nimport failed before any record processing occurred.", - "nullable": true - }, - "validation_failures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/eureka_ImportFailure" - }, - "description": "Per-item validation failure entries. Null when the import failed\nbefore item validation could run.", - "nullable": true - }, - "diagnostics": { - "type": "array", - "items": { - "$ref": "#/components/schemas/eureka_ImportDiagnostic" - }, - "description": "Diagnostic message groups (errors, rollbacks, and non-fatal\nwarnings), each keyed by a `sub_status`. Null when the import\nproduced no diagnostics.", - "nullable": true - }, - "operation_id": { - "type": "string", - "description": "Server-minted UUID for log correlation. Echo this in support\ntickets and in the follow-up orphan-cleanup call.", - "nullable": true - } - }, - "description": "Response from importMemory. On `SUCCESS`, `summary` is fully\npopulated. `diagnostics` carries any fatal errors, rollbacks, and\nnon-fatal observations (including residual-orphan doc ids that a\nfollow-up sweeper will reconcile)." - }, - "eureka_ImportSummary": { - "type": "object", - "properties": { - "memory_type": { - "type": "string", - "enum": [ - "RULES", - "RECIPES", - "ALWAYS_APPLY_RULES" - ], - "description": "The kind of memory (`RULES`, `RECIPES`, or `ALWAYS_APPLY_RULES`)\nthese counts apply to.", - "nullable": true - }, - "source": { - "$ref": "#/components/schemas/eureka_ImportTargetSource", - "description": "The target object these counts apply to.", - "nullable": true - }, - "existing_record_count": { - "type": "integer", - "format": "int32", - "description": "Number of memory entries of this type that already existed on the\ntarget object before the import.", - "nullable": true - }, - "deleted_record_count": { - "type": "integer", - "format": "int32", - "description": "Number of existing entries that will be (DRY_RUN) or were\n(EXECUTE_IMPORT) deleted as part of the replacement.", - "nullable": true - }, - "inserted_record_count": { - "type": "integer", - "format": "int32", - "description": "Number of entries from the payload that will be (DRY_RUN) or were\n(EXECUTE_IMPORT) inserted.", - "nullable": true - }, - "failed_record_count": { - "type": "integer", - "format": "int32", - "description": "Number of records of this type that failed validation or processing.", - "nullable": true - } - }, - "description": "Per (memory type, target source) summary of what importMemory did — or\nwould do, in DRY_RUN. `deleted_record_count` and `inserted_record_count`\nare previews in DRY_RUN and actuals in EXECUTE_IMPORT." - }, - "eureka_ImportTargetSource": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Identifier (GUID) of the target object these counts apply to.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "DATA_MODEL" - ], - "description": "Source object kind (currently `DATA_MODEL`).", - "nullable": true - } - }, - "description": "Identifies the target object a group of import counts applies to.\n`type` is the source kind (currently `DATA_MODEL`) and `identifier` is\nthe object's GUID." - }, - "eureka_ImportFailure": { - "type": "object", - "properties": { - "line_number": { - "type": "integer", - "format": "int32", - "description": "Best-effort line number of the offending item in the uploaded YAML.\nUI uses it for click-to-locate. May be null when the line cannot be\ndetermined.", - "nullable": true - }, - "reason": { - "type": "string", - "enum": [ - "UNKNOWN_FAILURE_REASON", - "VALIDATION", - "UNRESOLVED_SOURCE", - "ACCESS_DENIED", - "CHAR_LIMIT", - "SCHEMA" - ], - "description": "Machine-readable category for the failure (e.g. `VALIDATION`,\n`ACCESS_DENIED`, `CHAR_LIMIT`). UI uses this to decide messaging.", - "nullable": true - }, - "field_name": { - "type": "string", - "description": "Dotted path to the offending field within the item (e.g.\n`content.rule_definition`) for inline highlighting. Absent when the\nfailure is item-level rather than field-level.", - "nullable": true - }, - "message": { - "type": "string", - "description": "Human-readable description of the failure.", - "nullable": true - } - }, - "description": "One per-item import failure surfaced by importMemory. `line_number` is\nthe best-effort line number in the uploaded YAML; UI uses it for\nclick-to-locate. `field_name` is a dotted path within the item (e.g.\n`content.rule_definition`) for inline highlighting; absent when the\nfailure is item-level rather than field-level." - }, - "eureka_ImportDiagnostic": { - "type": "object", - "properties": { - "sub_status": { - "type": "string", - "enum": [ - "UNKNOWN", - "FAILURE", - "WARNING", - "ROLLED_BACK" - ], - "description": "Severity / disposition category these messages share (e.g.\n`WARNING`, `FAILURE`, `ROLLED_BACK`).", - "nullable": true - }, - "messages": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Human-readable messages for this category (e.g. the residual-orphan\ndoc ids for a `WARNING`, or the failure cause for a `FAILURE`).", - "nullable": true - } - }, - "description": "A group of importMemory diagnostic messages that share a severity /\ndisposition. This is the single, uniform channel for fatal errors,\nrollbacks, and non-fatal observations." - }, "VariableUpdateAssignmentInput": { "type": "object", "required": [ @@ -28095,79 +25289,6 @@ } } }, - "InputTableDefinitionInput": { - "type": "object", - "required": [ - "new_columns", - "referenced_columns" - ], - "properties": { - "new_columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InputColumnSchemaInput" - }, - "description": "New input-only columns to create in the table." - }, - "referenced_columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Column IDs from the linked model to include in the table.\nPass an empty array to create an input table with no reference\ncolumns from the model." - } - }, - "description": "Definition of the input table schema." - }, - "InputColumnSchemaInput": { - "type": "object", - "required": [ - "name", - "data_type", - "type" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the column." - }, - "data_type": { - "type": "string", - "description": "Physical data type of the column as recognized by the connected\nwarehouse (for example, VARCHAR, INT64, DOUBLE, BOOL, DATE).\nThe accepted values depend on the underlying Cloud Data Warehouse." - }, - "type": { - "type": "string", - "enum": [ - "ATTRIBUTE", - "MEASURE" - ], - "description": "Semantic role of the column in ThoughtSpot. Use ATTRIBUTE for\ndimensional data such as text, dates, and identifiers, and\nMEASURE for numeric or aggregatable values." - } - }, - "description": "Schema definition for a single input column." - }, - "InputTableResponse": { - "type": "object", - "properties": { - "input_table_identifier": { - "type": "string", - "description": "Unique ID of the newly created input table.", - "nullable": true - } - } - }, - "InputTableUpdateResponse": { - "type": "object", - "properties": { - "rows_loaded": { - "type": "integer", - "format": "int32", - "description": "Number of rows successfully written to the input table.", - "nullable": true - } - }, - "description": "Response returned after successfully writing rows to an input table." - }, "PolicyProcessOptionsInput": { "type": "object", "properties": { @@ -28562,8 +25683,7 @@ "CHART_COLUMN_DATA_LABELS", "CHART_BAR_DATA_LABELS", "CHART_AREA_DATA_LABELS", - "TABLE_VALUE_CELLS", - "ADVANCED_CHART_LABELS" + "TABLE_VALUE_CELLS" ] }, "description": "Visualization areas whose font assignments should revert to the system\ndefault font.", @@ -28651,14 +25771,6 @@ }, "description": "Font assignments for table visualization areas. Provide only the areas to\nupdate; omitted areas remain unchanged.", "nullable": true - }, - "advanced_chart_visualization_fonts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdvancedChartFontAssignmentInput" - }, - "description": "Font assignments for advanced chart visualization areas. Provide only the\nareas to update; omitted areas remain unchanged.
Version: 26.7.0.cl or later", - "nullable": true } }, "description": "Font assignments grouped by visualization type." @@ -28715,27 +25827,6 @@ }, "description": "Font assignment for a single table visualization area." }, - "AdvancedChartFontAssignmentInput": { - "type": "object", - "required": [ - "visualization_area", - "font_identifier" - ], - "properties": { - "visualization_area": { - "type": "string", - "enum": [ - "ADVANCED_CHART_LABELS" - ], - "description": "Advanced chart visualization area to assign the font to.
Version: 26.7.0.cl or later" - }, - "font_identifier": { - "type": "string", - "description": "UUID or name of the font to assign to this area.
Version: 26.7.0.cl or later" - } - }, - "description": "Font assignment for a single advanced chart visualization area." - }, "StyleFontUploadData": { "type": "object", "required": [ @@ -28792,8 +25883,7 @@ "CHART_COLUMN_DATA_LABELS", "CHART_BAR_DATA_LABELS", "CHART_AREA_DATA_LABELS", - "TABLE_VALUE_CELLS", - "ADVANCED_CHART_LABELS" + "TABLE_VALUE_CELLS" ] }, "description": "Visualization areas that used the deleted font and were automatically reset\nto the system default font.", @@ -28873,21 +25963,6 @@ "metadata_identifier" ] }, - "ExportMemoryRequest": { - "type": "object", - "properties": { - "sources": { - "description": "List of typed scope groups selecting which data-models to export\nmemory for. Supply `DATA_MODEL` group to scope the\nexport to specific data-models.", - "type": "array", - "items": { - "$ref": "#/components/schemas/eureka_MemorySources" - } - } - }, - "required": [ - "sources" - ] - }, "GetDataSourceSuggestionsRequest": { "type": "object", "properties": { @@ -28951,23 +26026,6 @@ "query" ] }, - "ImportMemoryRequest": { - "type": "object", - "properties": { - "content": { - "description": "The full serialized memory payload to import (currently YAML) —\ntypically a previous `exportMemory` response's `content`, edited\nlocally and re-submitted.", - "type": "string" - }, - "dry_run": { - "description": "Required. When `true`, validate the payload and return preview\ncounts and row failures without writing anything. Pass `false` to\napply the atomic replacement. The caller must choose explicitly so\na real import is never triggered by omission.", - "type": "boolean" - } - }, - "required": [ - "content", - "dry_run" - ] - }, "QueryGetDecomposedQueryRequest": { "type": "object", "properties": { @@ -29693,13 +26751,14 @@ } }, "policy_processes": { - "description": "Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS.", + "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" + "ROW_COUNT_STATS", + "SCHEDULED_LIVEBOARDS" ] } } @@ -29792,13 +26851,14 @@ } }, "policy_processes": { - "description": "Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS.", + "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" + "ROW_COUNT_STATS", + "SCHEDULED_LIVEBOARDS" ] } }, @@ -31185,58 +28245,6 @@ } } }, - "CreateInputTableRequest": { - "type": "object", - "properties": { - "table_name": { - "description": "Physical table name to create in the external warehouse.", - "type": "string" - }, - "model_identifier": { - "description": "Unique ID or name of the model (worksheet) to link the\ninput table to.", - "type": "string" - }, - "table_definition": { - "description": "Definition of the input table, including new columns\nand referenced model columns.", - "allOf": [ - { - "$ref": "#/components/schemas/InputTableDefinitionInput" - } - ] - } - }, - "required": [ - "table_name", - "model_identifier", - "table_definition" - ] - }, - "UpdateInputTableRequest": { - "type": "object", - "properties": { - "columns": { - "description": "Names of the columns being written, in the same order as\nthe values in each row.", - "type": "array", - "items": { - "type": "string" - } - }, - "rows": { - "description": "Rows to write into the input table. Each row is an array\nof string values aligned positionally with columns.", - "type": "array", - "items": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "required": [ - "columns", - "rows" - ] - }, "SearchChannelHistoryRequest": { "type": "object", "properties": {