diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json
index ad0d6ce4c..45fcd5336 100644
--- a/api-spec/openapiSpecv3-2_0.json
+++ b/api-spec/openapiSpecv3-2_0.json
@@ -61,6 +61,14 @@
],
"description": "Roles for version 9.12.0.cl"
},
+ {
+ "name": "26.4.0.cl",
+ "id": "26.4.0.cl",
+ "tags": [
+ "26.4.0.cl"
+ ],
+ "description": "Roles for version 26.4.0.cl"
+ },
{
"name": "10.12.0.cl",
"id": "10.12.0.cl",
@@ -187,7 +195,7 @@
"/api/rest/2.0/ai/agent/conversation/create": {
"post": {
"operationId": "createAgentConversation",
- "description": "\nBetaVersion: 10.13.0.cl or later\n\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.13.0.cl or later\n\nVersion: 26.2.0.cl or later\n\nCreates a new Spotter agent conversation based on the provided context and settings. The endpoint was in Beta from 26.2.0.cl through 26.4.0.cl.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe request must include the `metadata_context` parameter to define the conversation context. The context type can be one of:\n\n- `DATA_SOURCE` *(available from 26.5.0.cl)*: targets a specific data source. Provide `data_source_identifier` in `data_source_context` for a single data source, or `data_source_identifiers` for multi-data-source context. The deprecated `guid` field is accepted for backwards compatibility.\n- `AUTO_MODE` *(available from 26.5.0.cl)*: automatically discovers and selects the most relevant datasets for the user's queries.\n\n> **Note for callers on versions 26.2.0.cl – 26.4.0.cl (Beta):** use the lowercase `data_source` enum value with the `guid` field instead of the above. Example: `{ \"type\": \"data_source\", \"data_source_context\": { \"guid\": \"\" } }`.\n\nThe `conversation_settings` parameter controls which Spotter capabilities are enabled for the conversation:\n\n- `enable_contextual_change_analysis` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl\n- `enable_natural_language_answer_generation` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl\n- `enable_reasoning` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl\n- `enable_save_chat` (default: `false`, *available from 26.5.0.cl*) — enables saving the conversation for later retrieval via conversation history\n\nIf the request is successful, the response includes a unique `conversation_identifier` that must be passed to `sendAgentConversationMessage` or `sendAgentConversationMessageStreaming` to send messages within this conversation. The response also includes `conversation_id` with the same value for backwards compatibility; use `conversation_identifier` for new integrations.\n\n#### Example request\n\n```json\n{\n \"metadata_context\": {\n \"type\": \"DATA_SOURCE\",\n \"data_source_context\": {\n \"data_source_identifier\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n }\n },\n \"conversation_settings\": {}\n}\n```\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 `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. |\n\n> ###### Note:\n>\n> - This endpoint was in Beta from 26.2.0.cl through 26.4.0.cl and is Generally Available from version 26.5.0.cl.\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",
"10.13.0.cl"
@@ -210,6 +218,22 @@
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentConversation"
+ },
+ "examples": {
+ "example_1": {
+ "summary": "Create a conversation with a specific data source",
+ "value": {
+ "conversation_id": "wwHQ5j8O8dQC",
+ "conversation_identifier": "wwHQ5j8O8dQC"
+ }
+ },
+ "example_2": {
+ "summary": "Create a conversation using auto mode where the agent automatically discovers and selects the most relevant datasets for the user's queries",
+ "value": {
+ "conversation_id": "aaHQ5j8O8dQC",
+ "conversation_identifier": "aaHQ5j8O8dQC"
+ }
+ }
}
}
}
@@ -234,6 +258,26 @@
}
}
},
+ "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": {
@@ -250,7 +294,7 @@
"/api/rest/2.0/ai/conversation/create": {
"post": {
"operationId": "createConversation",
- "description": "\nBetaVersion: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.4.0.cl or later\n\nVersion: 10.4.0.cl or later\n\nCreates a new conversation session tied to a specific data model for AI-driven natural language querying.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe request must include:\n- `metadata_identifier`: the unique ID of the data source that provides context for the conversation\n\nOptionally, you can provide:\n- `tokens`: a token string to set initial context for the conversation (e.g., `\"[sales],[item type],[state]\"`)\n\nIf the request is successful, ThoughtSpot returns a unique `conversation_identifier` that must be passed to `sendMessage` to continue the conversation.\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 `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. |\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\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",
"10.4.0.cl"
@@ -297,6 +341,26 @@
}
}
},
+ "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": {
@@ -313,7 +377,7 @@
"/api/rest/2.0/ai/data-source-suggestions": {
"post": {
"operationId": "getDataSourceSuggestions",
- "description": "\nBetaVersion: 10.15.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.15.0.cl or later\n\nSuggests the most relevant data sources for a given natural language query, ranked by confidence with LLM-generated reasoning.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include:\n- `query`: the natural language question to find relevant data sources for\n\nIf the request is successful, the API returns a ranked list of suggested data sources, each containing:\n- `confidence`: a float score indicating the model's confidence in the relevance of the suggestion\n- `details`: metadata about the data source\n - `data_source_identifier`: the unique ID of the data source\n - `data_source_name`: the display name of the data source\n - `description`: a description of the data source\n- `reasoning`: LLM-generated rationale explaining why the data source was recommended\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 `CAN_USE_SPOTTER` privilege or lacks view permission on the underlying metadata entities. |\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\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",
"10.15.0.cl"
@@ -360,6 +424,26 @@
}
}
},
+ "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": {
@@ -376,7 +460,7 @@
"/api/rest/2.0/ai/instructions/get": {
"post": {
"operationId": "getNLInstructions",
- "description": "\nBetaVersion: 10.15.0.cl or later\n\nThis API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries.\n\n#### Usage guidelines\n\nTo retrieve NL instructions for a data-model, the request must include:\n- `data_source_identifier`: The unique ID of the data-model to retrieve NL instructions\n\nThe API returns a response object with:\n- `nl_instructions_info`: An array of instruction objects, each containing:\n - `instructions`: Array of text instructions for natural language processing\n - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future.\n\n#### Instructions Scope\n\n- **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported)\n\n> ###### Note:\n> * To use this API, the user needs atleast view access on the data-model 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 10.15.0.cl and later.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> * Use this API to view currently configured instructions before modifying them with `setNLInstructions`.\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.15.0.cl or later\n\nRetrieves existing natural language (NL) instructions configured for a specific data model. These instructions guide the AI system in understanding data context and generating more accurate responses.\n\nRequires `CAN_USE_SPOTTER` privilege, at least view access on the data model, and a bearer token corresponding to the org where the data model exists.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `data_source_identifier`: the unique ID of the data model to retrieve instructions for\n\nIf the request is successful, the API returns:\n\n- `nl_instructions_info`: an array of instruction objects, each containing:\n - `instructions`: the configured text instructions for AI processing\n - `scope`: the scope of the instruction — currently only `GLOBAL` is supported\n\n#### Instructions scope\n\n- **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported)\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 `CAN_USE_SPOTTER` privilege, lacks view access on the data model, or the bearer token does not correspond to the org where the data model exists. |\n\n> ###### Note:\n>\n> - To use this API, the user needs at least view access on the data model, and must use the bearer token corresponding to the org 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 10.15.0.cl and later.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> - Use this API to review currently configured instructions before modifying them with `setNLInstructions`.\n\n\n\n\n#### Endpoint URL\n",
"tags": [
"AI",
"10.15.0.cl"
@@ -423,6 +507,26 @@
}
}
},
+ "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": {
@@ -439,7 +543,7 @@
"/api/rest/2.0/ai/relevant-questions/": {
"post": {
"operationId": "getRelevantQuestions",
- "description": "\nBetaVersion: 10.13.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.13.0.cl or later\n\nBreaks down a natural language query into a series of smaller analytical sub-questions, each mapped to a relevant data source.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nThe request must include:\n- `query`: the natural language question to decompose into analytical sub-questions\n- `metadata_context`: at least one of the following context identifiers to guide question generation:\n - `conversation_identifier` — an existing conversation session ID\n - `answer_identifiers` — a list of Answer GUIDs\n - `liveboard_identifiers` — a list of Liveboard GUIDs\n - `data_source_identifiers` — a list of data source GUIDs\n\nOptional parameters for refining the output:\n- `ai_context`: additional context to improve response quality\n - `content` — supplementary text or CSV data as string input\n - `instructions` — custom text instructions for the AI system\n- `limit_relevant_questions`: maximum number of questions to return (default: `5`)\n- `bypass_cache`: if `true`, forces fresh computation instead of returning cached results\n\nIf the request is successful, the API returns a list of relevant analytical questions, each containing:\n- `query`: the generated sub-question\n- `data_source_identifier`: the unique ID of the data source the question targets\n- `data_source_name`: the display name of the corresponding data source\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 `CAN_USE_SPOTTER` privilege or lacks view access to the referenced metadata objects. |\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\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",
"10.13.0.cl"
@@ -486,6 +590,26 @@
}
}
},
+ "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": {
@@ -502,7 +626,7 @@
"/api/rest/2.0/ai/analytical-questions": {
"post": {
"operationId": "queryGetDecomposedQuery",
- "description": "\nBetaVersion: 10.7.0.cl or later\n\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.7.0.cl or later\n\nVersion: 10.7.0.cl or later\n\n**Deprecated** — Use `getRelevantQuestions` instead (available from 10.13.0.cl).\n\nBreaks down a topical or goal-oriented natural language question into smaller, actionable analytical sub-questions, each mapped to a relevant data source for independent execution.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nThe request accepts the following parameters:\n\n- `nlsRequest`: contains the user `query` to decompose, along with optional `instructions` and `bypassCache` flag\n- `worksheetIds`: list of data source identifiers to scope the decomposition\n- `answerIds`: list of Answer GUIDs whose data guides the response\n- `liveboardIds`: list of Liveboard GUIDs whose data guides the response\n- `conversationId`: an existing conversation session ID for context continuity\n- `content`: supplementary text or CSV data to improve response quality\n- `maxDecomposedQueries`: maximum number of sub-questions to return (default: `5`)\n\nIf the request is successful, the API returns a `decomposedQueryResponse` containing a list of `decomposedQueries`, each with:\n- `query`: the generated analytical sub-question\n- `worksheetId`: the unique ID of the data source the question targets\n- `worksheetName`: the display name of the corresponding data source\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 `CAN_USE_SPOTTER` privilege or lacks view access to the referenced metadata objects. |\n\n> ###### Note:\n> * This endpoint is deprecated since 10.13.0.cl. Use `getRelevantQuestions` for new integrations.\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n",
"deprecated": true,
"tags": [
"AI",
@@ -550,6 +674,26 @@
}
}
},
+ "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": {
@@ -566,7 +710,7 @@
"/api/rest/2.0/ai/agent/{conversation_identifier}/converse": {
"post": {
"operationId": "sendAgentMessage",
- "description": "\nBetaVersion: 10.15.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.15.0.cl or later\n\n**Deprecated** — Use `sendAgentConversationMessage` instead.\n\nSend natural language messages to an existing Spotter agent conversation and returns the complete response synchronously.\n\nRequires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`.\nA conversation must first be created using the `createAgentConversation` API.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `conversation_identifier`: the unique session ID returned by `createAgentConversation`, used for context continuity and message tracking\n- `messages`: an array of one or more text messages to send to the agent\n\nThe API returns an array of response objects, each containing:\n\n- `type`: the kind of response — `text`, `answer`, or `error`\n- `message`: the main content of the response\n- `metadata`: additional information depending on the message type (e.g., answer metadata includes analytics and visualization details)\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 `CAN_USE_SPOTTER` privilege or lacks permission on the referenced conversation. |\n\n> ###### Note:\n>\n> - This endpoint is deprecated. Use `sendAgentConversationMessage` for new integrations.\n> - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\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",
"10.15.0.cl"
@@ -623,6 +767,26 @@
}
}
},
+ "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": {
@@ -639,7 +803,7 @@
"/api/rest/2.0/ai/agent/converse/sse": {
"post": {
"operationId": "sendAgentMessageStreaming",
- "description": "\nBetaVersion: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.13.0.cl or later\n\n**Deprecated** — Use `sendAgentConversationMessageStreaming` instead.\n\nSends one or more natural language messages to an existing Spotter agent conversation and returns the response as a real-time Server-Sent Events stream.\n\nRequires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`. A conversation must first be created using the `createAgentConversation` API.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `conversation_identifier`: the unique session ID returned by `createAgentConversation`, used for context continuity and message tracking\n- `messages`: an array of one or more text messages to send to the agent\n\nIf the request is valid, the API returns a Server-Sent Events (SSE) stream. Each line has the form `data: [{\"type\": \"...\", ...}]` — a JSON array of event objects. Event types include:\n\n- `ack`: confirms receipt of the request (`node_id`)\n- `conv_title`: conversation title (`title`, `conv_id`)\n- `notification`: status updates on operations (`group_id`, `metadata`, `code` — e.g. `TOOL_CALL_NOTIFICATION`, `nls_start`, `FINAL_RESPONSE_NOTIFICATION`)\n- `text-chunk`: incremental content chunks (`id`, `group_id`, `metadata` with `format` and `type` such as `thinking` or `text`, `content`)\n- `text`: full text block with same structure as `text-chunk`\n- `answer`: structured answer with metadata (`id`, `group_id`, `metadata` with `sage_query`, `session_id`, `title`, etc., `title`)\n- `error`: if a failure occurs\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 `CAN_USE_SPOTTER` privilege or lacks permission on the referenced conversation. |\n\n> ###### Note:\n>\n> - This endpoint is deprecated. Use `sendAgentConversationMessageStreaming` for new integrations.\n> - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> - This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> - The streaming protocol uses Server-Sent Events (SSE).\n\n\n\n\n#### Endpoint URL\n",
"tags": [
"AI",
"10.13.0.cl"
@@ -686,6 +850,26 @@
}
}
},
+ "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": {
@@ -702,7 +886,7 @@
"/api/rest/2.0/ai/conversation/{conversation_identifier}/converse": {
"post": {
"operationId": "sendMessage",
- "description": "\nBetaVersion: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.4.0.cl or later\n\nSends a follow-up message to an existing conversation within the context of a data model.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. A conversation must first be created using the `createConversation` API.\n\n#### Usage guidelines\n\nThe request must include:\n- `conversation_identifier`: the unique session ID returned by `createConversation`\n- `metadata_identifier`: the unique ID of the data source used for the conversation\n- `message`: a natural language string with the follow-up question\n\nIf the request is successful, the API returns an array of response messages, each containing:\n- `session_identifier`: the unique ID of the generated response\n- `generation_number`: the generation number of the response\n- `message_type`: the type of the response (e.g., `TSAnswer`)\n- `visualization_type`: the generated visualization type (`Chart`, `Table`, or `Undefined`)\n- `tokens` / `display_tokens`: the search tokens and user-friendly display tokens for the response\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 `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. |\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\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",
"10.4.0.cl"
@@ -765,6 +949,26 @@
}
}
},
+ "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": {
@@ -781,7 +985,7 @@
"/api/rest/2.0/ai/instructions/set": {
"post": {
"operationId": "setNLInstructions",
- "description": "\nBetaVersion: 10.15.0.cl or later\n\nThis API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses.\n\n#### Usage guidelines\n\nTo set NL instructions for a data-model, the request must include:\n- `data_source_identifier`: The unique ID of the data-model for which to set NL instructions\n- `nl_instructions_info`: An array of instruction objects, each containing:\n - `instructions`: Array of text instructions for the LLM\n - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future.\n\nThe API returns a response object with:\n- `success`: Boolean indicating whether the operation was successful\n\n#### Instructions Scope\n\n- **GLOBAL**: Instructions that apply globally for that data-model across the system\n\n> ###### Note:\n> * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model 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 10.15.0.cl and later.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.15.0.cl or later\n\nThis API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses.\n\nRequires `CAN_USE_SPOTTER` privilege, either edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, and a bearer token corresponding to the org where the data model exists.\n\n#### Usage guidelines\n\nTo set NL instructions for a data-model, the request must include:\n\n- `data_source_identifier`: The unique ID of the data-model for which to set NL instructions\n- `nl_instructions_info`: An array of instruction objects, each containing:\n - `instructions`: Array of text instructions for the LLM\n - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future.\n\n#### Instructions scope\n\n- **GLOBAL**: instructions that apply to all users querying this data model\n\nIf the request is successful, the API returns:\n\n- `success`: a boolean indicating whether the operation completed successfully\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 `CAN_USE_SPOTTER` privilege, lacks edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, or the bearer token does not correspond to the org where the data model exists. |\n\n> ###### Note:\n>\n> - To use this API, the user needs either edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, and must use the bearer token corresponding to the org 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 10.15.0.cl and later.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> - Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.\n\n\n\n\n#### Endpoint URL\n",
"tags": [
"AI",
"10.15.0.cl"
@@ -828,6 +1032,26 @@
}
}
},
+ "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": {
@@ -844,7 +1068,7 @@
"/api/rest/2.0/ai/answer/create": {
"post": {
"operationId": "singleAnswer",
- "description": "\nBetaVersion: 10.4.0.cl or later\n\nProcesses a natural language query and returns an AI-generated response based on a specified data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\nBetaVersion: 10.4.0.cl or later\n\nProcesses a natural language query against a specified data model and returns a single AI-generated answer without requiring a conversation session.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe request must include:\n- `query`: a natural language question (e.g., \"What were total sales last quarter?\")\n- `metadata_identifier`: the unique ID of the data source to query against\n\nIf the request is successful, the API returns a response message containing:\n- `session_identifier`: the unique ID of the generated response\n- `generation_number`: the generation number of the response\n- `message_type`: the type of the response (e.g., `TSAnswer`)\n- `visualization_type`: the generated visualization type (`Chart`, `Table`, or `Undefined`)\n- `tokens` / `display_tokens`: the search tokens and user-friendly display tokens for the response\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 `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. |\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\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",
"10.4.0.cl"
@@ -891,6 +1115,26 @@
}
}
},
+ "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": {
@@ -1061,7 +1305,278 @@
}
},
"400": {
- "description": "Invalid request. This could be due to missing or incorrect parameters.",
+ "description": "Invalid request. This could be due to missing or incorrect parameters.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized access. The request could not be authenticated.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden access. The user does not have permission to access this resource.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "An unexpected error occurred on the server.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/api/rest/2.0/auth/token/full": {
+ "post": {
+ "operationId": "getFullAccessToken",
+ "description": "\n Version: 9.0.0.cl or later\n\nGenerates an authentication token for creating a full session in ThoughtSpot for a given user. Recommended for use cases that do not require Attribute-based access control (ABAC) via Row Level Security (RLS).\n\n#### Usage guidelines\n\nYou can generate a token for a user by providing a `username` and `password`, or by using the `secret_key` generated for your instance. To generate a `secret_key`, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/trusted-auth-secret-key) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**:\n* When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n* If [Multi-Factor Authentication (MFA)](https://docs.thoughtspot.com/cloud/latest/authentication-local-mfa) is enabled on your instance, the API login request with `username` and `password` returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\nThe token obtained from ThoughtSpot is valid for 5 minutes by default. You can configure the token expiration time as required.\n\n#### Just-in-time provisioning\n\nFor [just-in-time user creation and provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning), specify the following attributes in the API request:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `true` if the username does not exist in ThoughtSpot. If the user already exists in ThoughtSpot and `auto_create` is set to `true`, user properties such as display name, email and group assignment will be updated.\n\nTo add a new user and assign privileges during auto-creation, the `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege is required. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH` (**Can Enable or Disable Trusted Authentication**) privilege is required.\n\n#### Important point to note\nAll options in the token creation APIs that define user access to data in ThoughtSpot will take effect during token creation, not when the token is used for authentication. For example, `auto_create:true` will create the user when the authentication token is created.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Authentication",
+ "9.0.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/GetFullAccessTokenRequest"
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Bearer auth token creation successful.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Token"
+ }
+ }
+ }
+ },
+ "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"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/api/rest/2.0/auth/token/object": {
+ "post": {
+ "operationId": "getObjectAccessToken",
+ "description": "\n Version: 9.0.0.cl or later\n\nGenerates an authentication token that provides access to a specific metadata object. This object list is intersected with the list of objects the user is allowed to access via group membership. For more information, see [Object security](https://docs.thoughtspot.com/cloud/latest/security-data-object#object_security).\n\n#### Usage guidelines\n\nYou can generate a token for a user by providing a `username` and `password`, or by using the `secret_key` generated for your instance. To generate a `secret_key`, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/trusted-auth-secret-key) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**:\n* When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n* If [Multi-Factor Authentication (MFA)](https://docs.thoughtspot.com/cloud/latest/authentication-local-mfa) is enabled on your instance, the API login request with `username` and `password` returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\nThe token obtained from ThoughtSpot is valid for 5 minutes by default. You can configure the token expiration time as required.\n\n#### Just-in-time provisioning\n\nFor [just-in-time user creation and provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning), specify the following attributes in the API request:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, user properties such as display name, email, and group assignment will be updated.\n\nTo add a new user and assign privileges, the `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege is required. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege is required.\n\n#### Important point to note\n\nAll options in the token creation APIs that define user access to data in ThoughtSpot will take effect during token creation, not when the token is used for authentication. For example, `auto_create:true` will create the user when the authentication token is created.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Authentication",
+ "9.0.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/GetObjectAccessTokenRequest"
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Bearer auth token creation successful.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Token"
+ }
+ }
+ }
+ },
+ "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"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/api/rest/2.0/auth/session/login": {
+ "post": {
+ "operationId": "login",
+ "description": "\n Version: 9.0.0.cl or later\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\n**Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Authentication",
+ "9.0.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LoginRequest"
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "204": {
+ "description": "User login successful."
+ },
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/rest/2.0/auth/session/logout": {
+ "post": {
+ "operationId": "logout",
+ "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Authentication",
+ "9.0.0.cl"
+ ],
+ "parameters": [],
+ "responses": {
+ "204": {
+ "description": "User logout successful."
+ },
+ "400": {
+ "description": "Invalid request.",
"content": {
"application/json": {
"schema": {
@@ -1071,7 +1586,7 @@
}
},
"401": {
- "description": "Unauthorized access. The request could not be authenticated.",
+ "description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
@@ -1081,7 +1596,7 @@
}
},
"403": {
- "description": "Forbidden access. The user does not have permission to access this resource.",
+ "description": "Forbidden access.",
"content": {
"application/json": {
"schema": {
@@ -1091,7 +1606,7 @@
}
},
"500": {
- "description": "An unexpected error occurred on the server.",
+ "description": "Unexpected error",
"content": {
"application/json": {
"schema": {
@@ -1100,14 +1615,13 @@
}
}
}
- },
- "security": []
+ }
}
},
- "/api/rest/2.0/auth/token/full": {
+ "/api/rest/2.0/auth/token/revoke": {
"post": {
- "operationId": "getFullAccessToken",
- "description": "\n Version: 9.0.0.cl or later\n\nGenerates an authentication token for creating a full session in ThoughtSpot for a given user. Recommended for use cases that do not require Attribute-based access control (ABAC) via Row Level Security (RLS).\n\n#### Usage guidelines\n\nYou can generate a token for a user by providing a `username` and `password`, or by using the `secret_key` generated for your instance. To generate a `secret_key`, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/trusted-auth-secret-key) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**:\n* When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n* If [Multi-Factor Authentication (MFA)](https://docs.thoughtspot.com/cloud/latest/authentication-local-mfa) is enabled on your instance, the API login request with `username` and `password` returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\nThe token obtained from ThoughtSpot is valid for 5 minutes by default. You can configure the token expiration time as required.\n\n#### Just-in-time provisioning\n\nFor [just-in-time user creation and provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning), specify the following attributes in the API request:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `true` if the username does not exist in ThoughtSpot. If the user already exists in ThoughtSpot and `auto_create` is set to `true`, user properties such as display name, email and group assignment will be updated.\n\nTo add a new user and assign privileges during auto-creation, the `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege is required. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH` (**Can Enable or Disable Trusted Authentication**) privilege is required.\n\n#### Important point to note\nAll options in the token creation APIs that define user access to data in ThoughtSpot will take effect during token creation, not when the token is used for authentication. For example, `auto_create:true` will create the user when the authentication token is created.\n\n\n\n\n#### Endpoint URL\n",
+ "operationId": "revokeToken",
+ "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n",
"tags": [
"Authentication",
"9.0.0.cl"
@@ -1116,7 +1630,7 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/GetFullAccessTokenRequest"
+ "$ref": "#/components/schemas/RevokeTokenRequest"
}
}
},
@@ -1124,15 +1638,8 @@
},
"parameters": [],
"responses": {
- "200": {
- "description": "Bearer auth token creation successful.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Token"
- }
- }
- }
+ "204": {
+ "description": "Token successfully revoked."
},
"400": {
"description": "Invalid request.",
@@ -1174,23 +1681,22 @@
}
}
}
- },
- "security": []
+ }
}
},
- "/api/rest/2.0/auth/token/object": {
+ "/api/rest/2.0/auth/token/validate": {
"post": {
- "operationId": "getObjectAccessToken",
- "description": "\n Version: 9.0.0.cl or later\n\nGenerates an authentication token that provides access to a specific metadata object. This object list is intersected with the list of objects the user is allowed to access via group membership. For more information, see [Object security](https://docs.thoughtspot.com/cloud/latest/security-data-object#object_security).\n\n#### Usage guidelines\n\nYou can generate a token for a user by providing a `username` and `password`, or by using the `secret_key` generated for your instance. To generate a `secret_key`, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/trusted-auth-secret-key) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**:\n* When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n* If [Multi-Factor Authentication (MFA)](https://docs.thoughtspot.com/cloud/latest/authentication-local-mfa) is enabled on your instance, the API login request with `username` and `password` returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\nThe token obtained from ThoughtSpot is valid for 5 minutes by default. You can configure the token expiration time as required.\n\n#### Just-in-time provisioning\n\nFor [just-in-time user creation and provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning), specify the following attributes in the API request:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, user properties such as display name, email, and group assignment will be updated.\n\nTo add a new user and assign privileges, the `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege is required. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege is required.\n\n#### Important point to note\n\nAll options in the token creation APIs that define user access to data in ThoughtSpot will take effect during token creation, not when the token is used for authentication. For example, `auto_create:true` will create the user when the authentication token is created.\n\n\n\n\n#### Endpoint URL\n",
+ "operationId": "validateToken",
+ "description": "\n Version: 9.12.0.cl or later\n\n\nValidates the authentication token specified in the API request.\n\nIf your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n",
"tags": [
"Authentication",
- "9.0.0.cl"
+ "9.12.0.cl"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/GetObjectAccessTokenRequest"
+ "$ref": "#/components/schemas/ValidateTokenRequest"
}
}
},
@@ -1199,11 +1705,11 @@
"parameters": [],
"responses": {
"200": {
- "description": "Bearer auth token creation successful.",
+ "description": "Token validation successful.",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Token"
+ "$ref": "#/components/schemas/TokenValidationResponse"
}
}
}
@@ -1248,23 +1754,22 @@
}
}
}
- },
- "security": []
+ }
}
},
- "/api/rest/2.0/auth/session/login": {
+ "/api/rest/2.0/collections/create": {
"post": {
- "operationId": "login",
- "description": "\n Version: 9.0.0.cl or later\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\n**Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n#### Endpoint URL\n",
+ "operationId": "createCollection",
+ "description": "\n Version: 26.4.0.cl or later\n\nCreates a new collection in ThoughtSpot.\n\nCollections allow you to organize and group related metadata objects such as Liveboards, Answers, worksheets, and other data objects. You can also create nested collections (sub-collections) to build a hierarchical structure.\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Create a new collection\n* Add metadata objects (Liveboards, Answers, Logical Tables) to the collection\n* Create nested collections by adding sub-collections\n\n\n\n\n#### Endpoint URL\n",
"tags": [
- "Authentication",
- "9.0.0.cl"
+ "Collections",
+ "26.4.0.cl"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/LoginRequest"
+ "$ref": "#/components/schemas/CreateCollectionRequest"
}
}
},
@@ -1272,8 +1777,15 @@
},
"parameters": [],
"responses": {
- "204": {
- "description": "User login successful."
+ "200": {
+ "description": "Collection created successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Collection"
+ }
+ }
+ }
},
"400": {
"description": "Invalid request.",
@@ -1318,18 +1830,35 @@
}
}
},
- "/api/rest/2.0/auth/session/logout": {
+ "/api/rest/2.0/collections/delete": {
"post": {
- "operationId": "logout",
- "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n",
+ "operationId": "deleteCollection",
+ "description": "\n Version: 26.4.0.cl or later\n\nDeletes one or more collections from ThoughtSpot.\n\n#### Delete options\n\n* **delete_children**: When set to `true`, deletes the child objects (metadata items) within the collection that the user has access to. Objects that the user does not have permission to delete will be skipped.\n* **dry_run**: When set to `true`, performs a preview of the deletion operation without actually deleting anything. The response shows what would be deleted, allowing you to review before committing the deletion.\n\n#### Response\n\nThe response includes:\n* **metadata_deleted**: List of metadata objects that were successfully deleted\n* **metadata_skipped**: List of metadata objects that were skipped due to lack of permissions or other constraints\n\n\n\n\n#### Endpoint URL\n",
"tags": [
- "Authentication",
- "9.0.0.cl"
+ "Collections",
+ "26.4.0.cl"
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DeleteCollectionRequest"
+ }
+ }
+ },
+ "required": true
+ },
"parameters": [],
"responses": {
- "204": {
- "description": "User logout successful."
+ "200": {
+ "description": "Collections deleted successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionDeleteResponse"
+ }
+ }
+ }
},
"400": {
"description": "Invalid request.",
@@ -1361,6 +1890,16 @@
}
}
},
+ "404": {
+ "description": "Resource not found.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
"500": {
"description": "Unexpected error",
"content": {
@@ -1374,19 +1913,19 @@
}
}
},
- "/api/rest/2.0/auth/token/revoke": {
+ "/api/rest/2.0/collections/search": {
"post": {
- "operationId": "revokeToken",
- "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n",
+ "operationId": "searchCollections",
+ "description": "\n Version: 26.4.0.cl or later\n\nGets a list of collections available in ThoughtSpot.\n\nTo get details of a specific collection, specify the collection GUID or name. You can also filter the API response based on the collection name pattern, author, and other criteria.\n\n#### Search options\n\n* **name_pattern**: Use '%' as a wildcard character to match collection names\n* **collection_identifiers**: Search for specific collections by their GUIDs or names\n* **include_metadata**: When set to `true`, includes the metadata objects within each collection in the response\n\n**NOTE**: If the API returns an empty list, consider increasing the value of the `record_size` parameter. To search across all available collections, set `record_size` to `-1`.\n\n\n\n\n#### Endpoint URL\n",
"tags": [
- "Authentication",
- "9.0.0.cl"
+ "Collections",
+ "26.4.0.cl"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/RevokeTokenRequest"
+ "$ref": "#/components/schemas/SearchCollectionsRequest"
}
}
},
@@ -1394,8 +1933,15 @@
},
"parameters": [],
"responses": {
- "204": {
- "description": "Token successfully revoked."
+ "200": {
+ "description": "Successfully retrieved list of collections",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionSearchResponse"
+ }
+ }
+ }
},
"400": {
"description": "Invalid request.",
@@ -1440,35 +1986,38 @@
}
}
},
- "/api/rest/2.0/auth/token/validate": {
+ "/api/rest/2.0/collections/{collection_identifier}/update": {
"post": {
- "operationId": "validateToken",
- "description": "\n Version: 9.12.0.cl or later\n\n\nValidates the authentication token specified in the API request.\n\nIf your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n",
+ "operationId": "updateCollection",
+ "description": "\n Version: 26.4.0.cl or later\n\nUpdates an existing collection in ThoughtSpot.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations:\n\n* Update collection name and description\n* Change visibility settings\n* Add metadata objects to the collection (operation: ADD)\n* Remove metadata objects from the collection (operation: REMOVE)\n* Replace all metadata objects in the collection (operation: REPLACE)\n\n#### Operation types\n\n* **ADD**: Adds the specified metadata objects to the existing collection without removing current items\n* **REMOVE**: Removes only the specified metadata objects from the collection\n* **REPLACE**: Replaces all existing metadata objects with the specified items (default behavior)\n\n\n\n\n#### Endpoint URL\n",
"tags": [
- "Authentication",
- "9.12.0.cl"
+ "Collections",
+ "26.4.0.cl"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/ValidateTokenRequest"
+ "$ref": "#/components/schemas/UpdateCollectionRequest"
}
}
},
"required": true
},
- "parameters": [],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "collection_identifier",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Unique GUID of the collection. Note: Collection names cannot be used as\nidentifiers since duplicate names are allowed."
+ }
+ ],
"responses": {
- "200": {
- "description": "Token validation successful.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/TokenValidationResponse"
- }
- }
- }
+ "204": {
+ "description": "Collection updated successfully. No content returned."
},
"400": {
"description": "Invalid request.",
@@ -1500,6 +2049,16 @@
}
}
},
+ "404": {
+ "description": "Resource not found.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
"500": {
"description": "Unexpected error",
"content": {
@@ -1807,7 +2366,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 \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\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 \"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\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"
@@ -4692,6 +5251,158 @@
}
}
},
+ "/api/rest/2.0/jobs/history/communication-channels/search": {
+ "post": {
+ "operationId": "searchChannelHistory",
+ "description": "\n Version: 26.4.0.cl or later\n\nSearches delivery history for communication channels such as webhooks. Returns channel-level delivery status for each job execution record. Use this to monitor channel health and delivery success rates across events.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n**NOTE**: When `channel_type` is `WEBHOOK`, the following constraints apply:\n\n- `job_ids`, `channel_identifiers`, and `events` each accept at most one element.\n- When `job_ids` is provided, it is used as the sole lookup key and other filter fields are ignored.\n- When `job_ids` is not provided, `channel_identifiers` and `events` are both required. Each must contain exactly one element, and the event object must include the `identifier` field.\n- Records older than the configured retention period are not returned.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Jobs",
+ "26.4.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SearchChannelHistoryRequest"
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Channel status logs retrieved successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SearchChannelHistoryResponse"
+ },
+ "examples": {
+ "example_1": {
+ "description": "Search webhook channel history by channel identifier and event",
+ "value": {
+ "jobs": [
+ {
+ "id": "n.6170538a-a4d4-4712-91bf-39b353db2b72",
+ "status": "SUCCESS",
+ "creation_time_in_millis": 1771599720674,
+ "event": {
+ "type": "LIVEBOARD_SCHEDULE",
+ "id": "2bb2ff83-b8d9-4d2b-8913-b2589bb6831b",
+ "name": "schedule-identifier",
+ "run_id": "90c4f1b0-08c9-4a6c-8e61-49cffd9f1550"
+ },
+ "recipients": [
+ {
+ "type": "USER",
+ "id": "d211f619-8b72-45d3-92a7-69dde41159c7",
+ "name": "admin-user",
+ "email": "admin@example.com"
+ }
+ ],
+ "detail": "",
+ "try_count": 1
+ },
+ {
+ "id": "n.5c5bbedb-c425-48c0-8b54-a17267b08e7c",
+ "status": "SUCCESS",
+ "creation_time_in_millis": 1771599600508,
+ "event": {
+ "type": "LIVEBOARD_SCHEDULE",
+ "id": "2bb2ff83-b8d9-4d2b-8913-b2589bb6831b",
+ "name": "schedule-identifier",
+ "run_id": "b9834966-fe85-4fa9-8a10-9889c01d4826"
+ },
+ "recipients": [
+ {
+ "type": "USER",
+ "id": "d211f619-8b72-45d3-92a7-69dde41159c7",
+ "name": "admin-user",
+ "email": "admin@example.com"
+ }
+ ],
+ "detail": "",
+ "try_count": 1
+ }
+ ]
+ }
+ },
+ "example_2": {
+ "description": "Search webhook channel history by job ID",
+ "value": {
+ "jobs": [
+ {
+ "id": "n.5c5bbedb-c425-48c0-8b54-a17267b08e7c",
+ "status": "SUCCESS",
+ "creation_time_in_millis": 1771599600508,
+ "event": {
+ "type": "LIVEBOARD_SCHEDULE",
+ "id": "2bb2ff83-b8d9-4d2b-8913-b2589bb6831b",
+ "name": "schedule-identifier",
+ "run_id": "b9834966-fe85-4fa9-8a10-9889c01d4826"
+ },
+ "recipients": [
+ {
+ "type": "USER",
+ "id": "d211f619-8b72-45d3-92a7-69dde41159c7",
+ "name": "admin-user",
+ "email": "admin@example.com"
+ }
+ ],
+ "detail": "",
+ "try_count": 1
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "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/logs/fetch": {
"post": {
"operationId": "fetchLogs",
@@ -5510,7 +6221,8 @@
"/api/rest/2.0/metadata/parameterize": {
"post": {
"operationId": "parameterizeMetadata",
- "description": "\nParameterize fields in metadata objects. BetaVersion: 10.9.0.cl or later\n\nAllows parameterizing fields in metadata objects in ThoughtSpot.\n\nRequires appropriate permissions to modify the metadata object.\n\nThe API endpoint allows parameterizing the following types of metadata objects:\n* Logical Tables\n* Connections\n* Connection Configs\n\nFor a Logical Table the field type must be `ATTRIBUTE` and field name can be one of:\n* databaseName\n* schemaName\n* tableName\n\nFor a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized.\n\nFor Connection Config, the only supported field name is:\n* impersonate_user\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\nParameterize fields in metadata objects. BetaVersion: 10.9.0.cl or later\n\n**Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/metadata/parameterize-fields](/api/rest/2.0/metadata/parameterize-fields) instead.\n\nAllows parameterizing fields in metadata objects in ThoughtSpot.\n\nRequires appropriate permissions to modify the metadata object.\n\nThe API endpoint allows parameterizing the following types of metadata objects:\n* Logical Tables\n* Connections\n* Connection Configs\n\nFor a Logical Table the field type must be `ATTRIBUTE` and field name can be one of:\n* databaseName\n* schemaName\n* tableName\n\nFor a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized.\n\nFor Connection Config, the only supported field name is:\n* impersonate_user\n\n\n\n\n#### Endpoint URL\n",
+ "deprecated": true,
"tags": [
"Metadata",
"10.9.0.cl"
@@ -5573,6 +6285,72 @@
}
}
},
+ "/api/rest/2.0/metadata/parameterize-fields": {
+ "post": {
+ "operationId": "parameterizeMetadataFields",
+ "description": "\nParameterize multiple fields of metadata objects. For example [schemaName, databaseName] for LOGICAL_TABLE. Version: 26.4.0.cl or later\n\nAllows parameterizing multiple fields of metadata objects in ThoughtSpot. For example, you can parameterize [schemaName, databaseName] for LOGICAL_TABLE.\n\nRequires appropriate permissions to modify the metadata object.\n\nThe API endpoint allows parameterizing the following types of metadata objects:\n* Logical Tables\n* Connections\n* Connection Configs\n\nFor a Logical Table, the field type must be `ATTRIBUTE` and field names can include:\n* databaseName\n* schemaName\n* tableName\n\nFor a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_names specifies the exact properties of the Connection or Connection Config that need to be parameterized.\n\nFor Connection Config, supported field names include:\n* impersonate_user\n\nYou can parameterize multiple fields at once by providing an array of field names.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Metadata",
+ "26.4.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ParameterizeMetadataFieldsRequest"
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "204": {
+ "description": "Parameterize successful."
+ },
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/api/rest/2.0/metadata/search": {
"post": {
"operationId": "searchMetadata",
@@ -8344,6 +9122,79 @@
}
}
},
+ "/api/rest/2.0/system/communication-channels/validate": {
+ "post": {
+ "operationId": "validateCommunicationChannel",
+ "description": "\nBetaVersion: 26.4.0.cl or later\n\nValidates a communication channel configuration to ensure it is properly set up and can receive events.\n- Use `channel_type` to specify the type of communication channel to validate (e.g., WEBHOOK).\n- Use `channel_identifier` to provide the unique identifier or name for the communication channel.\n- Use `event_type` to specify the event type to validate for this channel.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. For webhook channels, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "System",
+ "26.4.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ValidateCommunicationChannelRequest"
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "communication channel configuration validated successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CommunicationChannelValidateResponse"
+ }
+ }
+ }
+ },
+ "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/tags/assign": {
"post": {
"operationId": "assignTag",
@@ -9602,12 +10453,155 @@
},
"/api/rest/2.0/template/variables/{identifier}/delete": {
"post": {
- "operationId": "deleteVariable",
- "description": "\nDelete a variable BetaVersion: 10.14.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n",
+ "operationId": "deleteVariable",
+ "description": "\nDelete a variable BetaVersion: 10.14.0.cl or later\n\n**Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/template/variables/delete](/api/rest/2.0/template/variables/delete) instead.\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n",
+ "deprecated": true,
+ "tags": [
+ "Variable",
+ "10.14.0.cl"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "identifier",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Unique id or name of the variable"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleting the variable is successful."
+ },
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/rest/2.0/template/variables/delete": {
+ "post": {
+ "operationId": "deleteVariables",
+ "description": "\nDelete variable(s) BetaVersion: 26.4.0.cl or later\n\nAllows deleting multiple variables from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint requires:\n* The variable identifiers (IDs or names)\n\nThe operation will fail if:\n* The user lacks required permissions\n* Any of the variables don't exist\n* Any of the variables are being used by other objects\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Variable",
+ "26.4.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DeleteVariablesRequest"
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "204": {
+ "description": "Deletion of variable(s) is successful."
+ },
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/rest/2.0/template/variables/{identifier}/update-values": {
+ "post": {
+ "operationId": "putVariableValues",
+ "description": "\nUpdate values for a variable BetaVersion: 26.4.0.cl or later\n\nAllows updating values for a specific variable in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to the variable\n* Replacing existing values\n* Deleting values from the variable\n* Resetting all values\n\nWhen updating variable values, you need to specify:\n* The variable identifier (ID or name)\n* The values to add/replace/remove\n* The operation to perform (ADD, REPLACE, REMOVE, RESET)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* RESET - Removes all constraints for the given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n",
"tags": [
"Variable",
- "10.14.0.cl"
+ "26.4.0.cl"
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PutVariableValuesRequest"
+ }
+ }
+ },
+ "required": true
+ },
"parameters": [
{
"in": "path",
@@ -9616,12 +10610,12 @@
"schema": {
"type": "string"
},
- "description": "Unique id or name of the variable"
+ "description": "Unique ID or name of the variable"
}
],
"responses": {
"204": {
- "description": "Deleting the variable is successful."
+ "description": "Variable values updated successfully."
},
"400": {
"description": "Invalid request.",
@@ -9821,7 +10815,8 @@
"/api/rest/2.0/template/variables/update-values": {
"post": {
"operationId": "updateVariableValues",
- "description": "\nUpdate values for multiple variables BetaVersion: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, RESET)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* RESET - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\nUpdate values for multiple variables BetaVersion: 10.14.0.cl or later\n\n**Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/template/variables/{identifier}/update-values](/api/rest/2.0/template/variables/%7Bidentifier%7D/update-values) instead.\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, RESET)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* RESET - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n",
+ "deprecated": true,
"tags": [
"Variable",
"10.14.0.cl"
@@ -14746,7 +15741,8 @@
"CONNECTION_PROPERTY",
"TABLE_MAPPING",
"CONNECTION_PROPERTY_PER_PRINCIPAL",
- "FORMULA_VARIABLE"
+ "FORMULA_VARIABLE",
+ "USER_PROPERTY"
],
"description": "Type of variable",
"nullable": true
@@ -14773,7 +15769,7 @@
"USER",
"USER_GROUP"
],
- "description": "Principal type",
+ "description": "Type of principal to filter by. Use USER to filter values assigned to specific users, or USER_GROUP to filter values assigned to groups.",
"nullable": true
},
"principal_identifier": {
@@ -14783,11 +15779,11 @@
},
"model_identifier": {
"type": "string",
- "description": "Model Identifier",
+ "description": "Unique ID or name of the model to filter by. Applicable only for FORMULA_VARIABLE type.",
"nullable": true
}
},
- "description": "Input for variable scope in search"
+ "description": "Input for filtering variable values by scope in search operations"
},
"Variable": {
"type": "object",
@@ -14810,7 +15806,8 @@
"CONNECTION_PROPERTY",
"TABLE_MAPPING",
"CONNECTION_PROPERTY_PER_PRINCIPAL",
- "FORMULA_VARIABLE"
+ "FORMULA_VARIABLE",
+ "USER_PROPERTY"
],
"description": "Type of the variable",
"nullable": true
@@ -14860,7 +15857,7 @@
"USER",
"USER_GROUP"
],
- "description": "Principal type",
+ "description": "Type of principal to which this value applies. Use USER to assign the value to a specific user, or USER_GROUP to assign it to a group.",
"nullable": true
},
"principal_identifier": {
@@ -15179,6 +16176,14 @@
"description": "Redacted configuration for webhook signature verification.",
"nullable": true
},
+ "additional_headers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WebhookKeyValuePair"
+ },
+ "description": "Additional headers as an array of key-value pairs. Version: 26.4.0.cl or later",
+ "nullable": true
+ },
"creation_time_in_millis": {
"type": "number",
"format": "float",
@@ -15337,6 +16342,24 @@
}
}
},
+ "WebhookKeyValuePair": {
+ "type": "object",
+ "required": [
+ "key",
+ "value"
+ ],
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Header name."
+ },
+ "value": {
+ "type": "string",
+ "description": "Header value."
+ }
+ },
+ "description": "Key-value pair for additional webhook headers."
+ },
"WebhookUser": {
"type": "object",
"required": [
@@ -15384,70 +16407,354 @@
"nullable": true
}
},
- "description": "Storage configuration containing provider-specific settings."
+ "description": "Storage configuration containing provider-specific settings."
+ },
+ "AwsS3Config": {
+ "type": "object",
+ "required": [
+ "bucket_name",
+ "region",
+ "role_arn"
+ ],
+ "properties": {
+ "bucket_name": {
+ "type": "string",
+ "description": "Name of the S3 bucket where webhook payloads are stored."
+ },
+ "region": {
+ "type": "string",
+ "description": "AWS region where the S3 bucket is located."
+ },
+ "role_arn": {
+ "type": "string",
+ "description": "ARN of the IAM role used for S3 access."
+ },
+ "external_id": {
+ "type": "string",
+ "description": "External ID for secure cross-account role assumption.",
+ "nullable": true
+ },
+ "path_prefix": {
+ "type": "string",
+ "description": "Path prefix for organizing objects within the bucket.",
+ "nullable": true
+ }
+ },
+ "description": "AWS S3 storage configuration details."
+ },
+ "WebhookPagination": {
+ "type": "object",
+ "required": [
+ "record_offset",
+ "record_size",
+ "total_count",
+ "has_more"
+ ],
+ "properties": {
+ "record_offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The starting record number from where the records are included."
+ },
+ "record_size": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of records included in the response."
+ },
+ "total_count": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Total number of webhook configurations available."
+ },
+ "has_more": {
+ "type": "boolean",
+ "description": "Indicates whether more records are available beyond the current response."
+ }
+ }
+ },
+ "CollectionSearchResponse": {
+ "type": "object",
+ "required": [
+ "collections"
+ ],
+ "properties": {
+ "collections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Collection"
+ },
+ "description": "List of collections matching the search criteria."
+ },
+ "record_offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The starting record number from where the records are included.",
+ "nullable": true
+ },
+ "record_size": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of records returned.",
+ "nullable": true
+ },
+ "is_last_batch": {
+ "type": "boolean",
+ "description": "Indicates if this is the last batch of results.",
+ "nullable": true
+ },
+ "count": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Total count of records returned.",
+ "nullable": true
+ }
+ },
+ "description": "Response object for search collections operation."
+ },
+ "Collection": {
+ "type": "object",
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique identifier of the collection."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the collection."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the collection.",
+ "nullable": true
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CollectionMetadataItem"
+ },
+ "description": "Metadata objects in the collection.",
+ "nullable": true
+ },
+ "created_at": {
+ "type": "string",
+ "description": "Creation timestamp in milliseconds.",
+ "nullable": true
+ },
+ "updated_at": {
+ "type": "string",
+ "description": "Last updated timestamp in milliseconds.",
+ "nullable": true
+ },
+ "author_name": {
+ "type": "string",
+ "description": "Name of the author who created the collection.",
+ "nullable": true
+ },
+ "author_id": {
+ "type": "string",
+ "description": "Unique identifier of the author.",
+ "nullable": true
+ },
+ "org": {
+ "$ref": "#/components/schemas/CollectionEntityIdentifier",
+ "description": "Org associated with the collection.",
+ "nullable": true
+ }
+ },
+ "description": "Response object for a collection."
+ },
+ "CollectionMetadataItem": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Type of the metadata object.",
+ "nullable": true
+ },
+ "identifiers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CollectionEntityIdentifier"
+ },
+ "description": "List of identifiers for this metadata type.",
+ "nullable": true
+ }
+ },
+ "description": "Metadata item in a collection response."
+ },
+ "CollectionEntityIdentifier": {
+ "type": "object",
+ "properties": {
+ "identifier": {
+ "type": "string",
+ "description": "Unique identifier of the entity.",
+ "nullable": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the entity.",
+ "nullable": true
+ }
+ },
+ "description": "Entity identifier with name."
+ },
+ "ChannelHistoryEventInput": {
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "description": "Type of the event."
+ },
+ "identifier": {
+ "type": "string",
+ "description": "Unique ID or name of the event.",
+ "nullable": true
+ }
+ },
+ "description": "Event specification for channel history search."
+ },
+ "SearchChannelHistoryResponse": {
+ "type": "object",
+ "required": [
+ "jobs"
+ ],
+ "properties": {
+ "jobs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ChannelHistoryJob"
+ },
+ "description": "List of job execution records."
+ }
+ },
+ "description": "Response wrapper for channel delivery history."
+ },
+ "ChannelHistoryJob": {
+ "type": "object",
+ "required": [
+ "id",
+ "status",
+ "creation_time_in_millis"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique identifier for this job."
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "PENDING",
+ "RETRY",
+ "SUCCESS",
+ "FAILED"
+ ],
+ "description": "Delivery status of this job."
+ },
+ "creation_time_in_millis": {
+ "type": "number",
+ "format": "float",
+ "description": "Timestamp when this job was created (epoch milliseconds)."
+ },
+ "event": {
+ "$ref": "#/components/schemas/ChannelHistoryEventInfo",
+ "description": "Event metadata for the triggering event associated with this job.",
+ "nullable": true
+ },
+ "recipients": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/JobRecipient"
+ },
+ "description": "The users, groups or external recipients for this job.",
+ "nullable": true
+ },
+ "detail": {
+ "type": "string",
+ "description": "Additional delivery details such as HTTP response code or error message.",
+ "nullable": true
+ },
+ "try_count": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of attempts made. 1 indicates first attempt.",
+ "nullable": true
+ }
+ },
+ "description": "A single job execution record for a channel."
},
- "AwsS3Config": {
+ "ChannelHistoryEventInfo": {
"type": "object",
"required": [
- "bucket_name",
- "region",
- "role_arn"
+ "type",
+ "id"
],
"properties": {
- "bucket_name": {
- "type": "string",
- "description": "Name of the S3 bucket where webhook payloads are stored."
- },
- "region": {
+ "type": {
"type": "string",
- "description": "AWS region where the S3 bucket is located."
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "description": "Type of the event."
},
- "role_arn": {
+ "id": {
"type": "string",
- "description": "ARN of the IAM role used for S3 access."
+ "description": "Unique ID of the event."
},
- "external_id": {
+ "name": {
"type": "string",
- "description": "External ID for secure cross-account role assumption.",
+ "description": "Name of the event.",
"nullable": true
},
- "path_prefix": {
+ "run_id": {
"type": "string",
- "description": "Path prefix for organizing objects within the bucket.",
+ "description": "Unique run ID for this event execution.",
"nullable": true
}
},
- "description": "AWS S3 storage configuration details."
+ "description": "Event metadata for the triggering event associated with a job."
},
- "WebhookPagination": {
+ "JobRecipient": {
"type": "object",
"required": [
- "record_offset",
- "record_size",
- "total_count",
- "has_more"
+ "type"
],
"properties": {
- "record_offset": {
- "type": "integer",
- "format": "int32",
- "description": "The starting record number from where the records are included."
+ "type": {
+ "type": "string",
+ "enum": [
+ "USER",
+ "EXTERNAL"
+ ],
+ "description": "Type of the recipient."
},
- "record_size": {
- "type": "integer",
- "format": "int32",
- "description": "The number of records included in the response."
+ "id": {
+ "type": "string",
+ "description": "Unique ID of the recipient.",
+ "nullable": true
},
- "total_count": {
- "type": "integer",
- "format": "int32",
- "description": "Total number of webhook configurations available."
+ "name": {
+ "type": "string",
+ "description": "Name of the recipient.",
+ "nullable": true
},
- "has_more": {
- "type": "boolean",
- "description": "Indicates whether more records are available beyond the current response."
+ "email": {
+ "type": "string",
+ "description": "Email of the recipient.",
+ "nullable": true
}
- }
+ },
+ "description": "A recipient (user, group, or external) for a job execution."
},
"GenericInfo": {
"type": "object",
@@ -16504,6 +17811,126 @@
},
"description": "Input for org-level non-embed access configuration."
},
+ "CommunicationChannelValidateResponse": {
+ "type": "object",
+ "required": [
+ "channel_type",
+ "channel_id",
+ "event_type",
+ "job_id",
+ "result_code"
+ ],
+ "properties": {
+ "channel_type": {
+ "type": "string",
+ "enum": [
+ "WEBHOOK"
+ ],
+ "description": "Type of communication channel that was validated."
+ },
+ "channel_id": {
+ "type": "string",
+ "description": "ID of the communication channel (e.g., webhook_id)."
+ },
+ "channel_name": {
+ "type": "string",
+ "description": "Name of the communication channel (e.g., webhook name).",
+ "nullable": true
+ },
+ "event_type": {
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "description": "Event type that was validated."
+ },
+ "job_id": {
+ "type": "string",
+ "description": "Unique Job Id of the validation."
+ },
+ "result_code": {
+ "type": "string",
+ "enum": [
+ "SUCCESS",
+ "FAILED",
+ "PARTIAL_SUCCESS"
+ ],
+ "description": "Overall result of the validation."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ChannelValidationDetail"
+ },
+ "description": "Detailed results of various validation sub-steps.",
+ "nullable": true
+ }
+ },
+ "description": "Response containing validation results for communication channel configuration."
+ },
+ "ChannelValidationDetail": {
+ "type": "object",
+ "required": [
+ "validation_step",
+ "status"
+ ],
+ "properties": {
+ "validation_step": {
+ "type": "string",
+ "enum": [
+ "HTTP_CONNECTION_CHECK",
+ "STORAGE_FILE_UPLOAD_CHECK"
+ ],
+ "description": "The validation step that was performed."
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "SUCCESS",
+ "FAILED"
+ ],
+ "description": "Status of this validation step."
+ },
+ "http_status": {
+ "type": "integer",
+ "format": "int32",
+ "description": "HTTP status code returned by the channel (if applicable).",
+ "nullable": true
+ },
+ "error_message": {
+ "type": "string",
+ "description": "Error message from the channel or validation process.",
+ "nullable": true
+ },
+ "aws_s3_info": {
+ "$ref": "#/components/schemas/ChannelValidationAwsS3Info",
+ "description": "AWS S3 storage information from the validation step.",
+ "nullable": true
+ }
+ },
+ "description": "Validation detail result for a sub-step."
+ },
+ "ChannelValidationAwsS3Info": {
+ "type": "object",
+ "properties": {
+ "bucket_name": {
+ "type": "string",
+ "description": "Name of the S3 bucket.",
+ "nullable": true
+ },
+ "file_name": {
+ "type": "string",
+ "description": "Name of the uploaded file.",
+ "nullable": true
+ },
+ "object_key": {
+ "type": "string",
+ "description": "Key of the object in S3 storage.",
+ "nullable": true
+ }
+ },
+ "description": "AWS S3 storage information returned from a validation step."
+ },
"TagMetadataTypeInput": {
"type": "object",
"required": [
@@ -16685,7 +18112,7 @@
},
"include_obj_id": {
"type": "boolean",
- "default": false,
+ "default": true,
"description": "Boolean flag to export Object ID of the object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature.",
"nullable": true
},
@@ -18824,6 +20251,52 @@
"type": "string",
"description": "The unique name of the org"
},
+ "principal_type": {
+ "type": "string",
+ "enum": [
+ "USER",
+ "USER_GROUP"
+ ],
+ "description": "Type of principal to which the variable value applies. Use USER to assign values to a specific user, or USER_GROUP to assign values to a group.",
+ "nullable": true
+ },
+ "principal_identifier": {
+ "type": "string",
+ "description": "Unique ID or name of the principal",
+ "nullable": true
+ },
+ "model_identifier": {
+ "type": "string",
+ "description": "Unique ID or name of the model. Required for FORMULA_VARIABLE type to scope the variable value to a specific worksheet.",
+ "nullable": true
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The priority level for this scope assignment, used for conflict resolution when multiple values match. Higher priority values (larger numbers) take precedence.",
+ "nullable": true
+ }
+ },
+ "description": "Input for defining the scope of variable value assignments in batch update operations"
+ },
+ "VariablePutAssignmentInput": {
+ "type": "object",
+ "required": [
+ "assigned_values"
+ ],
+ "properties": {
+ "assigned_values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Values of the variable"
+ },
+ "org_identifier": {
+ "type": "string",
+ "description": "The unique name of the org",
+ "nullable": true
+ },
"principal_type": {
"type": "string",
"enum": [
@@ -18850,7 +20323,7 @@
"nullable": true
}
},
- "description": "Input for variable value update in batch operations"
+ "description": "Input for variable value put operations"
},
"CreateEmailCustomizationResponse": {
"type": "object",
@@ -19030,6 +20503,11 @@
"type": "boolean",
"description": "Whether to hide contact support url. Version: 26.2.0.cl or later",
"nullable": true
+ },
+ "hide_logo_url": {
+ "type": "boolean",
+ "description": "Whether to hide logo Version: 26.4.0.cl or later",
+ "nullable": true
}
},
"description": "Email customization configuration properties"
@@ -19251,6 +20729,24 @@
},
"description": "Input type for AWS S3 storage configuration."
},
+ "WebhookKeyValuePairInput": {
+ "type": "object",
+ "required": [
+ "key",
+ "value"
+ ],
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Header name."
+ },
+ "value": {
+ "type": "string",
+ "description": "Header value."
+ }
+ },
+ "description": "Key-value pair input for additional webhook headers."
+ },
"WebhookDeleteResponse": {
"type": "object",
"required": [
@@ -19288,25 +20784,93 @@
},
"WebhookDeleteFailure": {
"type": "object",
- "required": [
- "id",
- "name",
- "error"
- ],
+ "required": [
+ "id",
+ "name",
+ "error"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique identifier of the webhook that failed to delete."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the webhook that failed to delete."
+ },
+ "error": {
+ "type": "string",
+ "description": "Error message describing why the deletion failed."
+ }
+ }
+ },
+ "CollectionMetadataInput": {
+ "type": "object",
+ "required": [
+ "type",
+ "identifiers"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "LIVEBOARD",
+ "ANSWER",
+ "LOGICAL_TABLE",
+ "COLLECTION"
+ ],
+ "description": "Type of metadata object."
+ },
+ "identifiers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of unique IDs or names of metadata objects."
+ }
+ },
+ "description": "Input type for metadata to be added to a collection."
+ },
+ "CollectionDeleteResponse": {
+ "type": "object",
+ "properties": {
+ "metadata_deleted": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CollectionDeleteTypeIdentifiers"
+ },
+ "description": "List of metadata objects that were successfully deleted.",
+ "nullable": true
+ },
+ "metadata_skipped": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CollectionDeleteTypeIdentifiers"
+ },
+ "description": "List of metadata objects that were skipped during deletion.\nObjects may be skipped due to lack of permissions, dependencies, or other constraints.",
+ "nullable": true
+ }
+ },
+ "description": "Response object for delete collection operation."
+ },
+ "CollectionDeleteTypeIdentifiers": {
+ "type": "object",
"properties": {
- "id": {
- "type": "string",
- "description": "Unique identifier of the webhook that failed to delete."
- },
- "name": {
+ "type": {
"type": "string",
- "description": "Name of the webhook that failed to delete."
+ "description": "Type of the metadata object (e.g., Collection, Worksheet, Table).",
+ "nullable": true
},
- "error": {
- "type": "string",
- "description": "Error message describing why the deletion failed."
+ "identifiers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/GenericInfo"
+ },
+ "description": "List of metadata identifiers belonging to the given type.",
+ "nullable": true
}
- }
+ },
+ "description": "Group of metadata objects identified by type."
},
"Runtime_Filter": {
"type": "object",
@@ -19846,6 +21410,135 @@
"token"
]
},
+ "CreateCollectionRequest": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the collection.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the collection.",
+ "type": "string"
+ },
+ "metadata": {
+ "description": "Metadata objects to add to the collection.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CollectionMetadataInput"
+ }
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "DeleteCollectionRequest": {
+ "type": "object",
+ "properties": {
+ "collection_identifiers": {
+ "description": "Unique GUIDs of collections to delete. Note: Collection names cannot be\nused as identifiers since duplicate names are allowed.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "delete_children": {
+ "description": "Flag to delete child objects of the collection that the user has access to.",
+ "default": false,
+ "type": "boolean",
+ "nullable": true
+ },
+ "dry_run": {
+ "description": "Preview deletion without actually deleting. When set to true, returns\nwhat would be deleted without performing the actual deletion.",
+ "default": false,
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "required": [
+ "collection_identifiers"
+ ]
+ },
+ "SearchCollectionsRequest": {
+ "type": "object",
+ "properties": {
+ "name_pattern": {
+ "description": "A pattern to match case-insensitive name of the Collection object.\nUse '%' for wildcard match.",
+ "type": "string"
+ },
+ "record_offset": {
+ "description": "The starting record number from where the records should be included.",
+ "default": 0,
+ "type": "integer",
+ "format": "int32"
+ },
+ "record_size": {
+ "description": "The number of records that should be included.\n-1 implies no pagination.",
+ "default": 10,
+ "type": "integer",
+ "format": "int32"
+ },
+ "collection_identifiers": {
+ "description": "Unique GUIDs of collections to search. Note: Collection names cannot be\nused as identifiers since duplicate names are allowed.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "created_by_user_identifiers": {
+ "description": "Filter collections by author. Provide unique IDs or names of users\nwho created the collections.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include_metadata": {
+ "description": "Include collection metadata items in the response.",
+ "default": false,
+ "type": "boolean",
+ "nullable": true
+ },
+ "sort_options": {
+ "description": "Sort options.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/SortOptions"
+ }
+ ]
+ }
+ }
+ },
+ "UpdateCollectionRequest": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the collection.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the collection.",
+ "type": "string"
+ },
+ "metadata": {
+ "description": "Metadata objects to add, remove, or replace in the collection.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CollectionMetadataInput"
+ }
+ },
+ "operation": {
+ "description": "Type of update operation. Default operation type is REPLACE.",
+ "default": "REPLACE",
+ "type": "string",
+ "enum": [
+ "ADD",
+ "REMOVE",
+ "REPLACE"
+ ]
+ }
+ }
+ },
"ConnectionConfigurationSearchRequest": {
"type": "object",
"properties": {
@@ -21379,6 +23072,57 @@
}
}
},
+ "SearchChannelHistoryRequest": {
+ "type": "object",
+ "properties": {
+ "channel_type": {
+ "description": "Type of communication channel to search history for.",
+ "type": "string",
+ "enum": [
+ "WEBHOOK"
+ ]
+ },
+ "job_ids": {
+ "description": "List of job execution record IDs to retrieve.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "channel_identifiers": {
+ "description": "List of channel IDs or names to filter by.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "channel_status": {
+ "description": "Filter by channel delivery status.",
+ "type": "string",
+ "enum": [
+ "PENDING",
+ "RETRY",
+ "SUCCESS",
+ "FAILED"
+ ]
+ },
+ "events": {
+ "description": "Filter by events that triggered the channel.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ChannelHistoryEventInput"
+ }
+ },
+ "start_epoch_time_in_millis": {
+ "description": "Filter records created on or after this time (epoch milliseconds).",
+ "type": "number",
+ "format": "float"
+ }
+ },
+ "required": [
+ "channel_type"
+ ]
+ },
"FetchLogsRequest": {
"type": "object",
"properties": {
@@ -21830,6 +23574,49 @@
"variable_identifier"
]
},
+ "ParameterizeMetadataFieldsRequest": {
+ "type": "object",
+ "properties": {
+ "metadata_type": {
+ "description": "Type of metadata object to parameterize.",
+ "type": "string",
+ "enum": [
+ "LOGICAL_TABLE",
+ "CONNECTION",
+ "CONNECTION_CONFIG"
+ ]
+ },
+ "metadata_identifier": {
+ "description": "Unique ID or name of the metadata object to parameterize.",
+ "type": "string"
+ },
+ "field_type": {
+ "description": "Type of field in the metadata to parameterize.",
+ "type": "string",
+ "enum": [
+ "ATTRIBUTE",
+ "CONNECTION_PROPERTY"
+ ]
+ },
+ "field_names": {
+ "description": "JSON array of field names to parameterize. Example: [schemaName, databaseName, tableName]",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "variable_identifier": {
+ "description": "Unique ID or name of the variable to use for parameterization of these fields.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "metadata_identifier",
+ "field_type",
+ "field_names",
+ "variable_identifier"
+ ]
+ },
"SearchMetadataRequest": {
"type": "object",
"properties": {
@@ -24489,6 +26276,34 @@
"configuration"
]
},
+ "ValidateCommunicationChannelRequest": {
+ "type": "object",
+ "properties": {
+ "channel_type": {
+ "description": "Type of communication channel to validate (e.g., WEBHOOK).",
+ "type": "string",
+ "enum": [
+ "WEBHOOK"
+ ]
+ },
+ "channel_identifier": {
+ "description": "Unique identifier or name for the communication channel.",
+ "type": "string"
+ },
+ "event_type": {
+ "description": "Event type to validate for this channel.",
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ]
+ }
+ },
+ "required": [
+ "channel_type",
+ "channel_identifier",
+ "event_type"
+ ]
+ },
"AssignTagRequest": {
"type": "object",
"properties": {
@@ -25233,6 +27048,46 @@
"name"
]
},
+ "DeleteVariablesRequest": {
+ "type": "object",
+ "properties": {
+ "identifiers": {
+ "description": "Unique id(s) or name(s) of the variable(s) to delete",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "identifiers"
+ ]
+ },
+ "PutVariableValuesRequest": {
+ "type": "object",
+ "properties": {
+ "operation": {
+ "description": "Operation to perform",
+ "type": "string",
+ "enum": [
+ "ADD",
+ "REMOVE",
+ "REPLACE",
+ "RESET"
+ ]
+ },
+ "variable_assignment": {
+ "description": "Variable assignments",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/VariablePutAssignmentInput"
+ }
+ }
+ },
+ "required": [
+ "variable_assignment"
+ ]
+ },
"SearchVariablesRequest": {
"type": "object",
"properties": {
@@ -25289,14 +27144,14 @@
"type": "object",
"properties": {
"variable_assignment": {
- "description": "Variables and values to update",
+ "description": "Array of variable assignment objects specifying the variable identifier, values to assign, and the operation type (ADD, REMOVE, REPLACE, or RESET) to perform on each variable.",
"type": "array",
"items": {
"$ref": "#/components/schemas/VariableUpdateAssignmentInput"
}
},
"variable_value_scope": {
- "description": "Variables and values to update",
+ "description": "Array of scope objects defining where the variable values apply, including organization context, optional principal constraints (user or group), model reference for formula variables, and priority for conflict resolution.",
"type": "array",
"items": {
"$ref": "#/components/schemas/VariableUpdateScopeInput"
@@ -25609,6 +27464,13 @@
"$ref": "#/components/schemas/StorageDestinationInput"
}
]
+ },
+ "additional_headers": {
+ "description": "Additional headers as an array of key-value pairs.\nExample: [{\"key\": \"X-Custom-Header\", \"value\": \"custom_value\"}] Version: 26.4.0.cl or later",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WebhookKeyValuePairInput"
+ }
}
},
"required": [
@@ -25724,6 +27586,13 @@
"$ref": "#/components/schemas/StorageDestinationInput"
}
]
+ },
+ "additional_headers": {
+ "description": "Additional headers as an array of key-value pairs.\nExample: [{\"key\": \"X-Custom-Header\", \"value\": \"custom_value\"}] Version: 26.4.0.cl or later",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WebhookKeyValuePairInput"
+ }
}
}
}
diff --git a/sdks/java/.openapi-generator/FILES b/sdks/java/.openapi-generator/FILES
index 82da35cec..9c76b158c 100644
--- a/sdks/java/.openapi-generator/FILES
+++ b/sdks/java/.openapi-generator/FILES
@@ -40,8 +40,21 @@ docs/CALLBACKInput.md
docs/CALLBACKInputMandatory.md
docs/CalendarResponse.md
docs/ChangeUserPasswordRequest.md
+docs/ChannelHistoryEventInfo.md
+docs/ChannelHistoryEventInput.md
+docs/ChannelHistoryJob.md
+docs/ChannelValidationAwsS3Info.md
+docs/ChannelValidationDetail.md
docs/ClusterNonEmbedAccess.md
docs/ClusterNonEmbedAccessInput.md
+docs/Collection.md
+docs/CollectionDeleteResponse.md
+docs/CollectionDeleteTypeIdentifiers.md
+docs/CollectionEntityIdentifier.md
+docs/CollectionMetadataInput.md
+docs/CollectionMetadataItem.md
+docs/CollectionSearchResponse.md
+docs/CollectionsApi.md
docs/Column.md
docs/ColumnSecurityRule.md
docs/ColumnSecurityRuleColumn.md
@@ -57,6 +70,7 @@ docs/CommitHistoryResponse.md
docs/CommitResponse.md
docs/CommiterType.md
docs/CommunicationChannelPreferencesResponse.md
+docs/CommunicationChannelValidateResponse.md
docs/ConfigureCommunicationChannelPreferencesRequest.md
docs/ConfigureSecuritySettingsRequest.md
docs/ConnectionConfigurationResponse.md
@@ -71,6 +85,7 @@ docs/ConvertWorksheetToModelRequest.md
docs/CopyObjectRequest.md
docs/CreateAgentConversationRequest.md
docs/CreateCalendarRequest.md
+docs/CreateCollectionRequest.md
docs/CreateConfigRequest.md
docs/CreateConnectionConfigurationRequest.md
docs/CreateConnectionRequest.md
@@ -107,12 +122,14 @@ docs/DefaultActionConfig.md
docs/DefaultActionConfigInput.md
docs/DefaultActionConfigInputCreate.md
docs/DefaultActionConfigSearchInput.md
+docs/DeleteCollectionRequest.md
docs/DeleteConfigRequest.md
docs/DeleteConnectionConfigurationRequest.md
docs/DeleteConnectionRequest.md
docs/DeleteMetadataRequest.md
docs/DeleteMetadataTypeInput.md
docs/DeleteOrgEmailCustomizationRequest.md
+docs/DeleteVariablesRequest.md
docs/DeleteWebhookConfigurationsRequest.md
docs/DeployCommitRequest.md
docs/DeployResponse.md
@@ -185,6 +202,8 @@ docs/JWTMetadataObject.md
docs/JWTParameter.md
docs/JWTUserOptions.md
docs/JWTUserOptionsFull.md
+docs/JobRecipient.md
+docs/JobsApi.md
docs/LBContextInput.md
docs/LiveboardContent.md
docs/LiveboardDataResponse.md
@@ -221,6 +240,7 @@ docs/OrgResponse.md
docs/OrgType.md
docs/OrgsApi.md
docs/ParameterValues.md
+docs/ParameterizeMetadataFieldsRequest.md
docs/ParameterizeMetadataRequest.md
docs/ParametersListItem.md
docs/ParametersListItemInput.md
@@ -238,6 +258,7 @@ docs/PrincipalsListItem.md
docs/PrincipalsListItemInput.md
docs/PublishMetadataListItem.md
docs/PublishMetadataRequest.md
+docs/PutVariableValuesRequest.md
docs/QueryGetDecomposedQueryRequest.md
docs/RecipientDetails.md
docs/RecipientDetailsInput.md
@@ -285,6 +306,9 @@ docs/Scope.md
docs/ScriptSrcUrls.md
docs/ScriptSrcUrlsInput.md
docs/SearchCalendarsRequest.md
+docs/SearchChannelHistoryRequest.md
+docs/SearchChannelHistoryResponse.md
+docs/SearchCollectionsRequest.md
docs/SearchCommitsRequest.md
docs/SearchCommunicationChannelPreferencesRequest.md
docs/SearchConfigRequest.md
@@ -351,6 +375,7 @@ docs/UnassignTagRequest.md
docs/UnparameterizeMetadataRequest.md
docs/UnpublishMetadataRequest.md
docs/UpdateCalendarRequest.md
+docs/UpdateCollectionRequest.md
docs/UpdateColumnSecurityRulesRequest.md
docs/UpdateConfigRequest.md
docs/UpdateConnectionConfigurationRequest.md
@@ -379,12 +404,14 @@ docs/UserObject.md
docs/UserParameterOptions.md
docs/UserPrincipal.md
docs/UsersApi.md
+docs/ValidateCommunicationChannelRequest.md
docs/ValidateMergeRequest.md
docs/ValidateTokenRequest.md
docs/ValueScopeInput.md
docs/Variable.md
docs/VariableApi.md
docs/VariableDetailInput.md
+docs/VariablePutAssignmentInput.md
docs/VariableUpdateAssignmentInput.md
docs/VariableUpdateScopeInput.md
docs/VariableValue.md
@@ -400,6 +427,8 @@ docs/WebhookAuthentication.md
docs/WebhookAuthenticationInput.md
docs/WebhookDeleteFailure.md
docs/WebhookDeleteResponse.md
+docs/WebhookKeyValuePair.md
+docs/WebhookKeyValuePairInput.md
docs/WebhookOrg.md
docs/WebhookPagination.md
docs/WebhookResponse.md
@@ -439,6 +468,7 @@ src/main/java/com/thoughtspot/client/ServerVariable.java
src/main/java/com/thoughtspot/client/StringUtil.java
src/main/java/com/thoughtspot/client/api/AiApi.java
src/main/java/com/thoughtspot/client/api/AuthenticationApi.java
+src/main/java/com/thoughtspot/client/api/CollectionsApi.java
src/main/java/com/thoughtspot/client/api/ConnectionConfigurationsApi.java
src/main/java/com/thoughtspot/client/api/ConnectionsApi.java
src/main/java/com/thoughtspot/client/api/CustomActionApi.java
@@ -447,6 +477,7 @@ src/main/java/com/thoughtspot/client/api/DataApi.java
src/main/java/com/thoughtspot/client/api/DbtApi.java
src/main/java/com/thoughtspot/client/api/EmailCustomizationApi.java
src/main/java/com/thoughtspot/client/api/GroupsApi.java
+src/main/java/com/thoughtspot/client/api/JobsApi.java
src/main/java/com/thoughtspot/client/api/LogApi.java
src/main/java/com/thoughtspot/client/api/MetadataApi.java
src/main/java/com/thoughtspot/client/api/OrgsApi.java
@@ -499,8 +530,20 @@ src/main/java/com/thoughtspot/client/model/CALLBACKInput.java
src/main/java/com/thoughtspot/client/model/CALLBACKInputMandatory.java
src/main/java/com/thoughtspot/client/model/CalendarResponse.java
src/main/java/com/thoughtspot/client/model/ChangeUserPasswordRequest.java
+src/main/java/com/thoughtspot/client/model/ChannelHistoryEventInfo.java
+src/main/java/com/thoughtspot/client/model/ChannelHistoryEventInput.java
+src/main/java/com/thoughtspot/client/model/ChannelHistoryJob.java
+src/main/java/com/thoughtspot/client/model/ChannelValidationAwsS3Info.java
+src/main/java/com/thoughtspot/client/model/ChannelValidationDetail.java
src/main/java/com/thoughtspot/client/model/ClusterNonEmbedAccess.java
src/main/java/com/thoughtspot/client/model/ClusterNonEmbedAccessInput.java
+src/main/java/com/thoughtspot/client/model/Collection.java
+src/main/java/com/thoughtspot/client/model/CollectionDeleteResponse.java
+src/main/java/com/thoughtspot/client/model/CollectionDeleteTypeIdentifiers.java
+src/main/java/com/thoughtspot/client/model/CollectionEntityIdentifier.java
+src/main/java/com/thoughtspot/client/model/CollectionMetadataInput.java
+src/main/java/com/thoughtspot/client/model/CollectionMetadataItem.java
+src/main/java/com/thoughtspot/client/model/CollectionSearchResponse.java
src/main/java/com/thoughtspot/client/model/Column.java
src/main/java/com/thoughtspot/client/model/ColumnSecurityRule.java
src/main/java/com/thoughtspot/client/model/ColumnSecurityRuleColumn.java
@@ -516,6 +559,7 @@ src/main/java/com/thoughtspot/client/model/CommitHistoryResponse.java
src/main/java/com/thoughtspot/client/model/CommitResponse.java
src/main/java/com/thoughtspot/client/model/CommiterType.java
src/main/java/com/thoughtspot/client/model/CommunicationChannelPreferencesResponse.java
+src/main/java/com/thoughtspot/client/model/CommunicationChannelValidateResponse.java
src/main/java/com/thoughtspot/client/model/ConfigureCommunicationChannelPreferencesRequest.java
src/main/java/com/thoughtspot/client/model/ConfigureSecuritySettingsRequest.java
src/main/java/com/thoughtspot/client/model/ConnectionConfigurationResponse.java
@@ -528,6 +572,7 @@ src/main/java/com/thoughtspot/client/model/ConvertWorksheetToModelRequest.java
src/main/java/com/thoughtspot/client/model/CopyObjectRequest.java
src/main/java/com/thoughtspot/client/model/CreateAgentConversationRequest.java
src/main/java/com/thoughtspot/client/model/CreateCalendarRequest.java
+src/main/java/com/thoughtspot/client/model/CreateCollectionRequest.java
src/main/java/com/thoughtspot/client/model/CreateConfigRequest.java
src/main/java/com/thoughtspot/client/model/CreateConnectionConfigurationRequest.java
src/main/java/com/thoughtspot/client/model/CreateConnectionRequest.java
@@ -560,12 +605,14 @@ src/main/java/com/thoughtspot/client/model/DefaultActionConfig.java
src/main/java/com/thoughtspot/client/model/DefaultActionConfigInput.java
src/main/java/com/thoughtspot/client/model/DefaultActionConfigInputCreate.java
src/main/java/com/thoughtspot/client/model/DefaultActionConfigSearchInput.java
+src/main/java/com/thoughtspot/client/model/DeleteCollectionRequest.java
src/main/java/com/thoughtspot/client/model/DeleteConfigRequest.java
src/main/java/com/thoughtspot/client/model/DeleteConnectionConfigurationRequest.java
src/main/java/com/thoughtspot/client/model/DeleteConnectionRequest.java
src/main/java/com/thoughtspot/client/model/DeleteMetadataRequest.java
src/main/java/com/thoughtspot/client/model/DeleteMetadataTypeInput.java
src/main/java/com/thoughtspot/client/model/DeleteOrgEmailCustomizationRequest.java
+src/main/java/com/thoughtspot/client/model/DeleteVariablesRequest.java
src/main/java/com/thoughtspot/client/model/DeleteWebhookConfigurationsRequest.java
src/main/java/com/thoughtspot/client/model/DeployCommitRequest.java
src/main/java/com/thoughtspot/client/model/DeployResponse.java
@@ -636,6 +683,7 @@ src/main/java/com/thoughtspot/client/model/JWTMetadataObject.java
src/main/java/com/thoughtspot/client/model/JWTParameter.java
src/main/java/com/thoughtspot/client/model/JWTUserOptions.java
src/main/java/com/thoughtspot/client/model/JWTUserOptionsFull.java
+src/main/java/com/thoughtspot/client/model/JobRecipient.java
src/main/java/com/thoughtspot/client/model/LBContextInput.java
src/main/java/com/thoughtspot/client/model/LiveboardContent.java
src/main/java/com/thoughtspot/client/model/LiveboardDataResponse.java
@@ -669,6 +717,7 @@ src/main/java/com/thoughtspot/client/model/OrgPreferenceSearchCriteriaInput.java
src/main/java/com/thoughtspot/client/model/OrgResponse.java
src/main/java/com/thoughtspot/client/model/OrgType.java
src/main/java/com/thoughtspot/client/model/ParameterValues.java
+src/main/java/com/thoughtspot/client/model/ParameterizeMetadataFieldsRequest.java
src/main/java/com/thoughtspot/client/model/ParameterizeMetadataRequest.java
src/main/java/com/thoughtspot/client/model/ParametersListItem.java
src/main/java/com/thoughtspot/client/model/ParametersListItemInput.java
@@ -686,6 +735,7 @@ src/main/java/com/thoughtspot/client/model/PrincipalsListItem.java
src/main/java/com/thoughtspot/client/model/PrincipalsListItemInput.java
src/main/java/com/thoughtspot/client/model/PublishMetadataListItem.java
src/main/java/com/thoughtspot/client/model/PublishMetadataRequest.java
+src/main/java/com/thoughtspot/client/model/PutVariableValuesRequest.java
src/main/java/com/thoughtspot/client/model/QueryGetDecomposedQueryRequest.java
src/main/java/com/thoughtspot/client/model/RecipientDetails.java
src/main/java/com/thoughtspot/client/model/RecipientDetailsInput.java
@@ -730,6 +780,9 @@ src/main/java/com/thoughtspot/client/model/Scope.java
src/main/java/com/thoughtspot/client/model/ScriptSrcUrls.java
src/main/java/com/thoughtspot/client/model/ScriptSrcUrlsInput.java
src/main/java/com/thoughtspot/client/model/SearchCalendarsRequest.java
+src/main/java/com/thoughtspot/client/model/SearchChannelHistoryRequest.java
+src/main/java/com/thoughtspot/client/model/SearchChannelHistoryResponse.java
+src/main/java/com/thoughtspot/client/model/SearchCollectionsRequest.java
src/main/java/com/thoughtspot/client/model/SearchCommitsRequest.java
src/main/java/com/thoughtspot/client/model/SearchCommunicationChannelPreferencesRequest.java
src/main/java/com/thoughtspot/client/model/SearchConfigRequest.java
@@ -792,6 +845,7 @@ src/main/java/com/thoughtspot/client/model/UnassignTagRequest.java
src/main/java/com/thoughtspot/client/model/UnparameterizeMetadataRequest.java
src/main/java/com/thoughtspot/client/model/UnpublishMetadataRequest.java
src/main/java/com/thoughtspot/client/model/UpdateCalendarRequest.java
+src/main/java/com/thoughtspot/client/model/UpdateCollectionRequest.java
src/main/java/com/thoughtspot/client/model/UpdateColumnSecurityRulesRequest.java
src/main/java/com/thoughtspot/client/model/UpdateConfigRequest.java
src/main/java/com/thoughtspot/client/model/UpdateConnectionConfigurationRequest.java
@@ -819,11 +873,13 @@ src/main/java/com/thoughtspot/client/model/UserInfo.java
src/main/java/com/thoughtspot/client/model/UserObject.java
src/main/java/com/thoughtspot/client/model/UserParameterOptions.java
src/main/java/com/thoughtspot/client/model/UserPrincipal.java
+src/main/java/com/thoughtspot/client/model/ValidateCommunicationChannelRequest.java
src/main/java/com/thoughtspot/client/model/ValidateMergeRequest.java
src/main/java/com/thoughtspot/client/model/ValidateTokenRequest.java
src/main/java/com/thoughtspot/client/model/ValueScopeInput.java
src/main/java/com/thoughtspot/client/model/Variable.java
src/main/java/com/thoughtspot/client/model/VariableDetailInput.java
+src/main/java/com/thoughtspot/client/model/VariablePutAssignmentInput.java
src/main/java/com/thoughtspot/client/model/VariableUpdateAssignmentInput.java
src/main/java/com/thoughtspot/client/model/VariableUpdateScopeInput.java
src/main/java/com/thoughtspot/client/model/VariableValue.java
@@ -838,6 +894,8 @@ src/main/java/com/thoughtspot/client/model/WebhookAuthentication.java
src/main/java/com/thoughtspot/client/model/WebhookAuthenticationInput.java
src/main/java/com/thoughtspot/client/model/WebhookDeleteFailure.java
src/main/java/com/thoughtspot/client/model/WebhookDeleteResponse.java
+src/main/java/com/thoughtspot/client/model/WebhookKeyValuePair.java
+src/main/java/com/thoughtspot/client/model/WebhookKeyValuePairInput.java
src/main/java/com/thoughtspot/client/model/WebhookOrg.java
src/main/java/com/thoughtspot/client/model/WebhookPagination.java
src/main/java/com/thoughtspot/client/model/WebhookResponse.java
@@ -848,6 +906,7 @@ src/main/java/com/thoughtspot/client/model/WebhookSortOptionsInput.java
src/main/java/com/thoughtspot/client/model/WebhookUser.java
src/test/java/com/thoughtspot/client/api/AiApiTest.java
src/test/java/com/thoughtspot/client/api/AuthenticationApiTest.java
+src/test/java/com/thoughtspot/client/api/CollectionsApiTest.java
src/test/java/com/thoughtspot/client/api/ConnectionConfigurationsApiTest.java
src/test/java/com/thoughtspot/client/api/ConnectionsApiTest.java
src/test/java/com/thoughtspot/client/api/CustomActionApiTest.java
@@ -856,6 +915,7 @@ src/test/java/com/thoughtspot/client/api/DataApiTest.java
src/test/java/com/thoughtspot/client/api/DbtApiTest.java
src/test/java/com/thoughtspot/client/api/EmailCustomizationApiTest.java
src/test/java/com/thoughtspot/client/api/GroupsApiTest.java
+src/test/java/com/thoughtspot/client/api/JobsApiTest.java
src/test/java/com/thoughtspot/client/api/LogApiTest.java
src/test/java/com/thoughtspot/client/api/MetadataApiTest.java
src/test/java/com/thoughtspot/client/api/OrgsApiTest.java
@@ -903,8 +963,20 @@ src/test/java/com/thoughtspot/client/model/CALLBACKInputTest.java
src/test/java/com/thoughtspot/client/model/CALLBACKTest.java
src/test/java/com/thoughtspot/client/model/CalendarResponseTest.java
src/test/java/com/thoughtspot/client/model/ChangeUserPasswordRequestTest.java
+src/test/java/com/thoughtspot/client/model/ChannelHistoryEventInfoTest.java
+src/test/java/com/thoughtspot/client/model/ChannelHistoryEventInputTest.java
+src/test/java/com/thoughtspot/client/model/ChannelHistoryJobTest.java
+src/test/java/com/thoughtspot/client/model/ChannelValidationAwsS3InfoTest.java
+src/test/java/com/thoughtspot/client/model/ChannelValidationDetailTest.java
src/test/java/com/thoughtspot/client/model/ClusterNonEmbedAccessInputTest.java
src/test/java/com/thoughtspot/client/model/ClusterNonEmbedAccessTest.java
+src/test/java/com/thoughtspot/client/model/CollectionDeleteResponseTest.java
+src/test/java/com/thoughtspot/client/model/CollectionDeleteTypeIdentifiersTest.java
+src/test/java/com/thoughtspot/client/model/CollectionEntityIdentifierTest.java
+src/test/java/com/thoughtspot/client/model/CollectionMetadataInputTest.java
+src/test/java/com/thoughtspot/client/model/CollectionMetadataItemTest.java
+src/test/java/com/thoughtspot/client/model/CollectionSearchResponseTest.java
+src/test/java/com/thoughtspot/client/model/CollectionTest.java
src/test/java/com/thoughtspot/client/model/ColumnSecurityRuleColumnTest.java
src/test/java/com/thoughtspot/client/model/ColumnSecurityRuleGroupOperationTest.java
src/test/java/com/thoughtspot/client/model/ColumnSecurityRuleGroupTest.java
@@ -920,6 +992,7 @@ src/test/java/com/thoughtspot/client/model/CommitHistoryResponseTest.java
src/test/java/com/thoughtspot/client/model/CommitResponseTest.java
src/test/java/com/thoughtspot/client/model/CommiterTypeTest.java
src/test/java/com/thoughtspot/client/model/CommunicationChannelPreferencesResponseTest.java
+src/test/java/com/thoughtspot/client/model/CommunicationChannelValidateResponseTest.java
src/test/java/com/thoughtspot/client/model/ConfigureCommunicationChannelPreferencesRequestTest.java
src/test/java/com/thoughtspot/client/model/ConfigureSecuritySettingsRequestTest.java
src/test/java/com/thoughtspot/client/model/ConnectionConfigurationResponseTest.java
@@ -932,6 +1005,7 @@ src/test/java/com/thoughtspot/client/model/ConvertWorksheetToModelRequestTest.ja
src/test/java/com/thoughtspot/client/model/CopyObjectRequestTest.java
src/test/java/com/thoughtspot/client/model/CreateAgentConversationRequestTest.java
src/test/java/com/thoughtspot/client/model/CreateCalendarRequestTest.java
+src/test/java/com/thoughtspot/client/model/CreateCollectionRequestTest.java
src/test/java/com/thoughtspot/client/model/CreateConfigRequestTest.java
src/test/java/com/thoughtspot/client/model/CreateConnectionConfigurationRequestTest.java
src/test/java/com/thoughtspot/client/model/CreateConnectionRequestTest.java
@@ -964,12 +1038,14 @@ src/test/java/com/thoughtspot/client/model/DefaultActionConfigInputCreateTest.ja
src/test/java/com/thoughtspot/client/model/DefaultActionConfigInputTest.java
src/test/java/com/thoughtspot/client/model/DefaultActionConfigSearchInputTest.java
src/test/java/com/thoughtspot/client/model/DefaultActionConfigTest.java
+src/test/java/com/thoughtspot/client/model/DeleteCollectionRequestTest.java
src/test/java/com/thoughtspot/client/model/DeleteConfigRequestTest.java
src/test/java/com/thoughtspot/client/model/DeleteConnectionConfigurationRequestTest.java
src/test/java/com/thoughtspot/client/model/DeleteConnectionRequestTest.java
src/test/java/com/thoughtspot/client/model/DeleteMetadataRequestTest.java
src/test/java/com/thoughtspot/client/model/DeleteMetadataTypeInputTest.java
src/test/java/com/thoughtspot/client/model/DeleteOrgEmailCustomizationRequestTest.java
+src/test/java/com/thoughtspot/client/model/DeleteVariablesRequestTest.java
src/test/java/com/thoughtspot/client/model/DeleteWebhookConfigurationsRequestTest.java
src/test/java/com/thoughtspot/client/model/DeployCommitRequestTest.java
src/test/java/com/thoughtspot/client/model/DeployResponseTest.java
@@ -1040,6 +1116,7 @@ src/test/java/com/thoughtspot/client/model/JWTMetadataObjectTest.java
src/test/java/com/thoughtspot/client/model/JWTParameterTest.java
src/test/java/com/thoughtspot/client/model/JWTUserOptionsFullTest.java
src/test/java/com/thoughtspot/client/model/JWTUserOptionsTest.java
+src/test/java/com/thoughtspot/client/model/JobRecipientTest.java
src/test/java/com/thoughtspot/client/model/LBContextInputTest.java
src/test/java/com/thoughtspot/client/model/LiveboardContentTest.java
src/test/java/com/thoughtspot/client/model/LiveboardDataResponseTest.java
@@ -1073,6 +1150,7 @@ src/test/java/com/thoughtspot/client/model/OrgResponseTest.java
src/test/java/com/thoughtspot/client/model/OrgTest.java
src/test/java/com/thoughtspot/client/model/OrgTypeTest.java
src/test/java/com/thoughtspot/client/model/ParameterValuesTest.java
+src/test/java/com/thoughtspot/client/model/ParameterizeMetadataFieldsRequestTest.java
src/test/java/com/thoughtspot/client/model/ParameterizeMetadataRequestTest.java
src/test/java/com/thoughtspot/client/model/ParametersListItemInputTest.java
src/test/java/com/thoughtspot/client/model/ParametersListItemTest.java
@@ -1090,6 +1168,7 @@ src/test/java/com/thoughtspot/client/model/PrincipalsListItemInputTest.java
src/test/java/com/thoughtspot/client/model/PrincipalsListItemTest.java
src/test/java/com/thoughtspot/client/model/PublishMetadataListItemTest.java
src/test/java/com/thoughtspot/client/model/PublishMetadataRequestTest.java
+src/test/java/com/thoughtspot/client/model/PutVariableValuesRequestTest.java
src/test/java/com/thoughtspot/client/model/QueryGetDecomposedQueryRequestTest.java
src/test/java/com/thoughtspot/client/model/RecipientDetailsInputTest.java
src/test/java/com/thoughtspot/client/model/RecipientDetailsTest.java
@@ -1134,6 +1213,9 @@ src/test/java/com/thoughtspot/client/model/ScopeTest.java
src/test/java/com/thoughtspot/client/model/ScriptSrcUrlsInputTest.java
src/test/java/com/thoughtspot/client/model/ScriptSrcUrlsTest.java
src/test/java/com/thoughtspot/client/model/SearchCalendarsRequestTest.java
+src/test/java/com/thoughtspot/client/model/SearchChannelHistoryRequestTest.java
+src/test/java/com/thoughtspot/client/model/SearchChannelHistoryResponseTest.java
+src/test/java/com/thoughtspot/client/model/SearchCollectionsRequestTest.java
src/test/java/com/thoughtspot/client/model/SearchCommitsRequestTest.java
src/test/java/com/thoughtspot/client/model/SearchCommunicationChannelPreferencesRequestTest.java
src/test/java/com/thoughtspot/client/model/SearchConfigRequestTest.java
@@ -1196,6 +1278,7 @@ src/test/java/com/thoughtspot/client/model/UnassignTagRequestTest.java
src/test/java/com/thoughtspot/client/model/UnparameterizeMetadataRequestTest.java
src/test/java/com/thoughtspot/client/model/UnpublishMetadataRequestTest.java
src/test/java/com/thoughtspot/client/model/UpdateCalendarRequestTest.java
+src/test/java/com/thoughtspot/client/model/UpdateCollectionRequestTest.java
src/test/java/com/thoughtspot/client/model/UpdateColumnSecurityRulesRequestTest.java
src/test/java/com/thoughtspot/client/model/UpdateConfigRequestTest.java
src/test/java/com/thoughtspot/client/model/UpdateConnectionConfigurationRequestTest.java
@@ -1223,10 +1306,12 @@ src/test/java/com/thoughtspot/client/model/UserObjectTest.java
src/test/java/com/thoughtspot/client/model/UserParameterOptionsTest.java
src/test/java/com/thoughtspot/client/model/UserPrincipalTest.java
src/test/java/com/thoughtspot/client/model/UserTest.java
+src/test/java/com/thoughtspot/client/model/ValidateCommunicationChannelRequestTest.java
src/test/java/com/thoughtspot/client/model/ValidateMergeRequestTest.java
src/test/java/com/thoughtspot/client/model/ValidateTokenRequestTest.java
src/test/java/com/thoughtspot/client/model/ValueScopeInputTest.java
src/test/java/com/thoughtspot/client/model/VariableDetailInputTest.java
+src/test/java/com/thoughtspot/client/model/VariablePutAssignmentInputTest.java
src/test/java/com/thoughtspot/client/model/VariableTest.java
src/test/java/com/thoughtspot/client/model/VariableUpdateAssignmentInputTest.java
src/test/java/com/thoughtspot/client/model/VariableUpdateScopeInputTest.java
@@ -1242,6 +1327,8 @@ src/test/java/com/thoughtspot/client/model/WebhookAuthenticationInputTest.java
src/test/java/com/thoughtspot/client/model/WebhookAuthenticationTest.java
src/test/java/com/thoughtspot/client/model/WebhookDeleteFailureTest.java
src/test/java/com/thoughtspot/client/model/WebhookDeleteResponseTest.java
+src/test/java/com/thoughtspot/client/model/WebhookKeyValuePairInputTest.java
+src/test/java/com/thoughtspot/client/model/WebhookKeyValuePairTest.java
src/test/java/com/thoughtspot/client/model/WebhookOrgTest.java
src/test/java/com/thoughtspot/client/model/WebhookPaginationTest.java
src/test/java/com/thoughtspot/client/model/WebhookResponseTest.java
diff --git a/sdks/java/README.md b/sdks/java/README.md
index 83dcb0e01..1c94faf90 100644
--- a/sdks/java/README.md
+++ b/sdks/java/README.md
@@ -14,7 +14,7 @@ Add this dependency to your project's POM:
com.thoughtspotrest-api-sdk
- 2.22.0
+ 2.23.0compile
```
@@ -29,7 +29,7 @@ Add this dependency to your project's build file:
}
dependencies {
- implementation "com.thoughtspot:rest-api-sdk:2.22.0"
+ implementation "com.thoughtspot:rest-api-sdk:2.23.0"
}
```
diff --git a/sdks/java/api/openapi.yaml b/sdks/java/api/openapi.yaml
index b482f7942..e851fba56 100644
--- a/sdks/java/api/openapi.yaml
+++ b/sdks/java/api/openapi.yaml
@@ -14,9 +14,56 @@ paths:
post:
description: |2+
- Version: 10.13.0.cl or later
+ Version: 26.2.0.cl or later
+
+
+ Creates a new Spotter agent conversation based on the provided context and settings. The endpoint was in Beta from 26.2.0.cl through 26.4.0.cl.
+
+ Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request.
+
+ #### Usage guidelines
+
+ The request must include the `metadata_context` parameter to define the conversation context. The context type can be one of:
+
+ - `DATA_SOURCE` *(available from 26.5.0.cl)*: targets a specific data source. Provide `data_source_identifier` in `data_source_context` for a single data source, or `data_source_identifiers` for multi-data-source context. The deprecated `guid` field is accepted for backwards compatibility.
+ - `AUTO_MODE` *(available from 26.5.0.cl)*: automatically discovers and selects the most relevant datasets for the user's queries.
+
+ > **Note for callers on versions 26.2.0.cl – 26.4.0.cl (Beta):** use the lowercase `data_source` enum value with the `guid` field instead of the above. Example: `{ "type": "data_source", "data_source_context": { "guid": "" } }`.
+
+ The `conversation_settings` parameter controls which Spotter capabilities are enabled for the conversation:
+
+ - `enable_contextual_change_analysis` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl
+ - `enable_natural_language_answer_generation` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl
+ - `enable_reasoning` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl
+ - `enable_save_chat` (default: `false`, *available from 26.5.0.cl*) — enables saving the conversation for later retrieval via conversation history
+
+ If the request is successful, the response includes a unique `conversation_identifier` that must be passed to `sendAgentConversationMessage` or `sendAgentConversationMessageStreaming` to send messages within this conversation. The response also includes `conversation_id` with the same value for backwards compatibility; use `conversation_identifier` for new integrations.
+
+ #### Example request
+
+ ```json
+ {
+ "metadata_context": {
+ "type": "DATA_SOURCE",
+ "data_source_context": {
+ "data_source_identifier": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
+ }
+ },
+ "conversation_settings": {}
+ }
+ ```
+ #### Error responses
+ | Code | Description |
+ | ---- | --------------------------------------------------------------------------------------------------------------------------------------- |
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. |
+
+ > ###### Note:
+ >
+ > - This endpoint was in Beta from 26.2.0.cl through 26.4.0.cl and is Generally Available from version 26.5.0.cl.
+ > - This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
@@ -34,6 +81,19 @@ paths:
"200":
content:
application/json:
+ examples:
+ example_1:
+ summary: Create a conversation with a specific data source
+ value:
+ conversation_id: wwHQ5j8O8dQC
+ conversation_identifier: wwHQ5j8O8dQC
+ example_2:
+ summary: Create a conversation using auto mode where the agent automatically
+ discovers and selects the most relevant datasets for the user's
+ queries
+ value:
+ conversation_id: aaHQ5j8O8dQC
+ conversation_identifier: aaHQ5j8O8dQC
schema:
$ref: '#/components/schemas/AgentConversation'
description: Common successful response
@@ -49,6 +109,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -68,19 +140,26 @@ paths:
Version: 10.4.0.cl or later
- Creates a Conversation object to start an AI-driven conversation based on a specific data model.
+ Creates a new conversation session tied to a specific data model for AI-driven natural language querying.
- Requires at least view access to the metadata object specified in the request.
+ Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request.
#### Usage guidelines
- This API requires the `metadata_identifier` parameter to define the context for the conversation.
+ The request must include:
+ - `metadata_identifier`: the unique ID of the data source that provides context for the conversation
+
+ Optionally, you can provide:
+ - `tokens`: a token string to set initial context for the conversation (e.g., `"[sales],[item type],[state]"`)
- You can also specify the tokens to initiate the conversation as shown in this example:
+ If the request is successful, ThoughtSpot returns a unique `conversation_identifier` that must be passed to `sendMessage` to continue the conversation.
- `"tokens": "[tea],[sales],[type]"`
+ #### Error responses
- If the API request is successful, ThoughtSpot returns the ID of the conversation.
+ | Code | Description |
+ |------|-------------|
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. |
> ###### Note:
> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
@@ -117,6 +196,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -136,20 +227,29 @@ paths:
Version: 10.15.0.cl or later
- Provides relevant data source recommendations for a user-submitted natural language query.
+ Suggests the most relevant data sources for a given natural language query, ranked by confidence with LLM-generated reasoning.
- To use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.
+ Requires `CAN_USE_SPOTTER` privilege and at least view-level access to the underlying metadata entities referenced in the response.
#### Usage guidelines
- The request must include a `query` string via the request body.
+ The request must include:
+ - `query`: the natural language question to find relevant data sources for
- The returned results include metadata such as:
- - `confidence`: a float indicating the model's confidence in the relevance of each recommendation
- - `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source
- - `reasoning`: rationale provided by the LLM to explain why each data source was recommended
+ If the request is successful, the API returns a ranked list of suggested data sources, each containing:
+ - `confidence`: a float score indicating the model's confidence in the relevance of the suggestion
+ - `details`: metadata about the data source
+ - `data_source_identifier`: the unique ID of the data source
+ - `data_source_name`: the display name of the data source
+ - `description`: a description of the data source
+ - `reasoning`: LLM-generated rationale explaining why the data source was recommended
- If the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.
+ #### Error responses
+
+ | Code | Description |
+ |------|--------------------------------------------------------------------------------------------------------------------------------------------|
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the underlying metadata entities. |
> ###### Note:
> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.
@@ -186,6 +286,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -205,28 +317,41 @@ paths:
Version: 10.15.0.cl or later
- This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries.
+ Retrieves existing natural language (NL) instructions configured for a specific data model. These instructions guide the AI system in understanding data context and generating more accurate responses.
+
+ Requires `CAN_USE_SPOTTER` privilege, at least view access on the data model, and a bearer token corresponding to the org where the data model exists.
#### Usage guidelines
- To retrieve NL instructions for a data-model, the request must include:
- - `data_source_identifier`: The unique ID of the data-model to retrieve NL instructions
+ The request must include:
- The API returns a response object with:
- - `nl_instructions_info`: An array of instruction objects, each containing:
- - `instructions`: Array of text instructions for natural language processing
- - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future.
+ - `data_source_identifier`: the unique ID of the data model to retrieve instructions for
+
+ If the request is successful, the API returns:
- #### Instructions Scope
+ - `nl_instructions_info`: an array of instruction objects, each containing:
+ - `instructions`: the configured text instructions for AI processing
+ - `scope`: the scope of the instruction — currently only `GLOBAL` is supported
+
+ #### Instructions scope
- **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported)
+ #### Error responses
+
+ | Code | Description |
+ |------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege, lacks view access on the data model, or the bearer token does not correspond to the org where the data model exists. |
+
> ###### Note:
- > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists.
- > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
- > * Available from version 10.15.0.cl and later.
- > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
- > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`.
+ >
+ > - To use this API, the user needs at least view access on the data model, and must use the bearer token corresponding to the org where the data model exists.
+ > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
+ > - Available from version 10.15.0.cl and later.
+ > - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
+ > - Use this API to review currently configured instructions before modifying them with `setNLInstructions`.
+
@@ -258,6 +383,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -277,25 +414,38 @@ paths:
Version: 10.13.0.cl or later
- Breaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.
+ Breaks down a natural language query into a series of smaller analytical sub-questions, each mapped to a relevant data source.
- To use this API, the user must have at least view-level access to the referenced metadata objects.
+ Requires `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced metadata objects.
#### Usage guidelines
- To accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.
-
- You can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:
-
- - `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.
- - `instructions`: User specific text instructions sent to AI system for processing the query.
-
- Additional optional parameters include:
-
- - `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.
- - `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.
-
- If the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.
+ The request must include:
+ - `query`: the natural language question to decompose into analytical sub-questions
+ - `metadata_context`: at least one of the following context identifiers to guide question generation:
+ - `conversation_identifier` — an existing conversation session ID
+ - `answer_identifiers` — a list of Answer GUIDs
+ - `liveboard_identifiers` — a list of Liveboard GUIDs
+ - `data_source_identifiers` — a list of data source GUIDs
+
+ Optional parameters for refining the output:
+ - `ai_context`: additional context to improve response quality
+ - `content` — supplementary text or CSV data as string input
+ - `instructions` — custom text instructions for the AI system
+ - `limit_relevant_questions`: maximum number of questions to return (default: `5`)
+ - `bypass_cache`: if `true`, forces fresh computation instead of returning cached results
+
+ If the request is successful, the API returns a list of relevant analytical questions, each containing:
+ - `query`: the generated sub-question
+ - `data_source_identifier`: the unique ID of the data source the question targets
+ - `data_source_name`: the display name of the corresponding data source
+
+ #### Error responses
+
+ | Code | Description |
+ |------|---------------------------------------------------------------------------------------------------------------------------------------|
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view access to the referenced metadata objects. |
> ###### Note:
> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
@@ -304,6 +454,7 @@ paths:
+
operationId: getRelevantQuestions
parameters: []
requestBody:
@@ -331,6 +482,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -351,6 +514,40 @@ paths:
Version: 10.7.0.cl or later
+ **Deprecated** — Use `getRelevantQuestions` instead (available from 10.13.0.cl).
+
+ Breaks down a topical or goal-oriented natural language question into smaller, actionable analytical sub-questions, each mapped to a relevant data source for independent execution.
+
+ Requires `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced metadata objects.
+
+ #### Usage guidelines
+
+ The request accepts the following parameters:
+
+ - `nlsRequest`: contains the user `query` to decompose, along with optional `instructions` and `bypassCache` flag
+ - `worksheetIds`: list of data source identifiers to scope the decomposition
+ - `answerIds`: list of Answer GUIDs whose data guides the response
+ - `liveboardIds`: list of Liveboard GUIDs whose data guides the response
+ - `conversationId`: an existing conversation session ID for context continuity
+ - `content`: supplementary text or CSV data to improve response quality
+ - `maxDecomposedQueries`: maximum number of sub-questions to return (default: `5`)
+
+ If the request is successful, the API returns a `decomposedQueryResponse` containing a list of `decomposedQueries`, each with:
+ - `query`: the generated analytical sub-question
+ - `worksheetId`: the unique ID of the data source the question targets
+ - `worksheetName`: the display name of the corresponding data source
+
+ #### Error responses
+
+ | Code | Description |
+ |------|---------------------------------------------------------------------------------------------------------------------------------------|
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view access to the referenced metadata objects. |
+
+ > ###### Note:
+ > * This endpoint is deprecated since 10.13.0.cl. Use `getRelevantQuestions` for new integrations.
+ > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
+ > * This endpoint requires Spotter — please contact ThoughtSpot support to enable Spotter on your cluster.
@@ -383,6 +580,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -397,21 +606,48 @@ paths:
- application/json
/api/rest/2.0/ai/agent/{conversation_identifier}/converse:
post:
- description: "\nVersion: 10.15.0.cl or later\n\n\nThis API allows users to initiate\
- \ or continue an agent (Spotter) conversation by submitting one or more natural\
- \ language messages. \nTo use this API, the user must have access to the relevant\
- \ conversational session (via conversation_identifier) and submit at least\
- \ one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation,\
- \ the request must include:\n- `conversation_identifier`: a unique session\
- \ ID for continuity and message tracking\n- `messages`: an array of one or\
- \ more text messages, each with a value and type\n\nThe API returns a array\
- \ of object with a type, message, and metadata.\n- `type`: Type of the message\
- \ — text, answer, or error.\n- `message`: Main content of the response.\n\
- - `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n\
- > * This endpoint is currently in Beta. Breaking changes may be introduced\
- \ before the endpoint is made Generally Available.\n> * This endpoint requires\
- \ Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\
- \n\n\n\n"
+ description: |2+
+
+ Version: 10.15.0.cl or later
+
+
+ **Deprecated** — Use `sendAgentConversationMessage` instead.
+
+ Send natural language messages to an existing Spotter agent conversation and returns the complete response synchronously.
+
+ Requires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`.
+ A conversation must first be created using the `createAgentConversation` API.
+
+ #### Usage guidelines
+
+ The request must include:
+
+ - `conversation_identifier`: the unique session ID returned by `createAgentConversation`, used for context continuity and message tracking
+ - `messages`: an array of one or more text messages to send to the agent
+
+ The API returns an array of response objects, each containing:
+
+ - `type`: the kind of response — `text`, `answer`, or `error`
+ - `message`: the main content of the response
+ - `metadata`: additional information depending on the message type (e.g., answer metadata includes analytics and visualization details)
+
+ #### Error responses
+
+ | Code | Description |
+ |------|----------------------------------------------------------------------------------------------------------------------------------|
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks permission on the referenced conversation. |
+
+ > ###### Note:
+ >
+ > - This endpoint is deprecated. Use `sendAgentConversationMessage` for new integrations.
+ > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
+ > - This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+
+
+
+
+
operationId: sendAgentMessage
parameters:
- description: Unique identifier for the conversation (used to track context)
@@ -447,6 +683,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -461,27 +709,52 @@ paths:
- application/json
/api/rest/2.0/ai/agent/converse/sse:
post:
- description: "\nVersion: 10.13.0.cl or later\n\n\nThis API allows users to initiate\
- \ or continue an agent (Spotter) conversation by submitting one or more natural\
- \ language messages. \nTo use this API, the user must have access to the relevant\
- \ conversational session (via conversation_identifier) and submit at least\
- \ one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation,\
- \ the request must include:\n- `conversation_identifier`: a unique session\
- \ ID for continuity and message tracking\n- `messages`: an array of one or\
- \ more text messages, each with a value and type\n\nAdditionally, user can\
- \ specify what tool can be included `conversation_settings` parameter, which\
- \ supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation`\
- \ (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request\
- \ is valid, the API returns a stream of messages in real time, including:\n\
- - `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks,\
- \ optionally formatted (e.g., markdown)\n- `answer`: the final structured\
- \ response with metadata and analytics\n- `error`: if a failure occurs\n-\
- \ `notification`: notification messages for operation being performed\n\n\
- > ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may\
- \ be introduced before the endpoint is made Generally Available.\n> * This\
- \ endpoint requires Spotter - please contact ThoughtSpot support to enable\
- \ Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events\
- \ (SSE)\n\n\n\n\n"
+ description: |2+
+
+ Version: 10.13.0.cl or later
+
+
+ **Deprecated** — Use `sendAgentConversationMessageStreaming` instead.
+
+ Sends one or more natural language messages to an existing Spotter agent conversation and returns the response as a real-time Server-Sent Events stream.
+
+ Requires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`. A conversation must first be created using the `createAgentConversation` API.
+
+ #### Usage guidelines
+
+ The request must include:
+
+ - `conversation_identifier`: the unique session ID returned by `createAgentConversation`, used for context continuity and message tracking
+ - `messages`: an array of one or more text messages to send to the agent
+
+ If the request is valid, the API returns a Server-Sent Events (SSE) stream. Each line has the form `data: [{"type": "...", ...}]` — a JSON array of event objects. Event types include:
+
+ - `ack`: confirms receipt of the request (`node_id`)
+ - `conv_title`: conversation title (`title`, `conv_id`)
+ - `notification`: status updates on operations (`group_id`, `metadata`, `code` — e.g. `TOOL_CALL_NOTIFICATION`, `nls_start`, `FINAL_RESPONSE_NOTIFICATION`)
+ - `text-chunk`: incremental content chunks (`id`, `group_id`, `metadata` with `format` and `type` such as `thinking` or `text`, `content`)
+ - `text`: full text block with same structure as `text-chunk`
+ - `answer`: structured answer with metadata (`id`, `group_id`, `metadata` with `sage_query`, `session_id`, `title`, etc., `title`)
+ - `error`: if a failure occurs
+
+ #### Error responses
+
+ | Code | Description |
+ |------|----------------------------------------------------------------------------------------------------------------------------------|
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks permission on the referenced conversation. |
+
+ > ###### Note:
+ >
+ > - This endpoint is deprecated. Use `sendAgentConversationMessageStreaming` for new integrations.
+ > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
+ > - This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ > - The streaming protocol uses Server-Sent Events (SSE).
+
+
+
+
+
operationId: sendAgentMessageStreaming
parameters: []
requestBody:
@@ -509,6 +782,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -528,15 +813,30 @@ paths:
Version: 10.4.0.cl or later
- Allows sending a follow-up message to an ongoing conversation within the context of the metadata model.
+ Sends a follow-up message to an existing conversation within the context of a data model.
- Requires at least view access to the metadata object specified in the request.
+ Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. A conversation must first be created using the `createConversation` API.
#### Usage guidelines
- The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.
+ The request must include:
+ - `conversation_identifier`: the unique session ID returned by `createConversation`
+ - `metadata_identifier`: the unique ID of the data source used for the conversation
+ - `message`: a natural language string with the follow-up question
+
+ If the request is successful, the API returns an array of response messages, each containing:
+ - `session_identifier`: the unique ID of the generated response
+ - `generation_number`: the generation number of the response
+ - `message_type`: the type of the response (e.g., `TSAnswer`)
+ - `visualization_type`: the generated visualization type (`Chart`, `Table`, or `Undefined`)
+ - `tokens` / `display_tokens`: the search tokens and user-friendly display tokens for the response
- If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.
+ #### Error responses
+
+ | Code | Description |
+ |------|-----------------------------------------------------------------------------------------------------------------------------------------|
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. |
> ###### Note:
> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
@@ -585,6 +885,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -606,27 +918,39 @@ paths:
This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses.
+ Requires `CAN_USE_SPOTTER` privilege, either edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, and a bearer token corresponding to the org where the data model exists.
+
#### Usage guidelines
To set NL instructions for a data-model, the request must include:
+
- `data_source_identifier`: The unique ID of the data-model for which to set NL instructions
- `nl_instructions_info`: An array of instruction objects, each containing:
- `instructions`: Array of text instructions for the LLM
- `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future.
- The API returns a response object with:
- - `success`: Boolean indicating whether the operation was successful
+ #### Instructions scope
+
+ - **GLOBAL**: instructions that apply to all users querying this data model
- #### Instructions Scope
+ If the request is successful, the API returns:
- - **GLOBAL**: Instructions that apply globally for that data-model across the system
+ - `success`: a boolean indicating whether the operation completed successfully
+
+ #### Error responses
+
+ | Code | Description |
+ |------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege, lacks edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, or the bearer token does not correspond to the org where the data model exists. |
> ###### Note:
- > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists.
- > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
- > * Available from version 10.15.0.cl and later.
- > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
- > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.
+ >
+ > - To use this API, the user needs either edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, and must use the bearer token corresponding to the org where the data model exists.
+ > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
+ > - Available from version 10.15.0.cl and later.
+ > - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
+ > - Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.
@@ -659,6 +983,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -678,9 +1014,29 @@ paths:
Version: 10.4.0.cl or later
- Processes a natural language query and returns an AI-generated response based on a specified data model.
+ Processes a natural language query against a specified data model and returns a single AI-generated answer without requiring a conversation session.
+
+ Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request.
+
+ #### Usage guidelines
+
+ The request must include:
+ - `query`: a natural language question (e.g., "What were total sales last quarter?")
+ - `metadata_identifier`: the unique ID of the data source to query against
+
+ If the request is successful, the API returns a response message containing:
+ - `session_identifier`: the unique ID of the generated response
+ - `generation_number`: the generation number of the response
+ - `message_type`: the type of the response (e.g., `TSAnswer`)
+ - `visualization_type`: the generated visualization type (`Chart`, `Table`, or `Undefined`)
+ - `tokens` / `display_tokens`: the search tokens and user-friendly display tokens for the response
+
+ #### Error responses
- Requires at least view access to the metadata object specified in the request.
+ | Code | Description |
+ |------|-----------------------------------------------------------------------------------------------------------------------------------------|
+ | 401 | Unauthorized — authentication token is missing, expired, or invalid. |
+ | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. |
> ###### Note:
> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.
@@ -717,6 +1073,18 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Operation failed
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
"500":
content:
application/json:
@@ -1352,22 +1720,319 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
- /api/rest/2.0/connection-configurations/search:
+ /api/rest/2.0/collections/create:
post:
description: |2+
- Version: 10.12.0.cl or later
+ Version: 26.4.0.cl or later
- Gets connection configuration objects.
+ Creates a new collection in ThoughtSpot.
- Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.
+ Collections allow you to organize and group related metadata objects such as Liveboards, Answers, worksheets, and other data objects. You can also create nested collections (sub-collections) to build a hierarchical structure.
- If [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.
+ #### Supported operations
- #### Usage guidelines
- * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body.
- * To fetch details of a configuration object, specify the configuration object name or GUID.
+ The API endpoint lets you perform the following operations:
+
+ * Create a new collection
+ * Add metadata objects (Liveboards, Answers, Logical Tables) to the collection
+ * Create nested collections by adding sub-collections
+
+
+
+
+
+ operationId: createCollection
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateCollectionRequest'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Collection'
+ description: Collection created successfully
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Invalid request.
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unexpected error
+ tags:
+ - Collections
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /api/rest/2.0/collections/delete:
+ post:
+ description: |2+
+
+ Version: 26.4.0.cl or later
+
+
+ Deletes one or more collections from ThoughtSpot.
+
+ #### Delete options
+
+ * **delete_children**: When set to `true`, deletes the child objects (metadata items) within the collection that the user has access to. Objects that the user does not have permission to delete will be skipped.
+ * **dry_run**: When set to `true`, performs a preview of the deletion operation without actually deleting anything. The response shows what would be deleted, allowing you to review before committing the deletion.
+
+ #### Response
+
+ The response includes:
+ * **metadata_deleted**: List of metadata objects that were successfully deleted
+ * **metadata_skipped**: List of metadata objects that were skipped due to lack of permissions or other constraints
+
+
+
+
+
+ operationId: deleteCollection
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteCollectionRequest'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CollectionDeleteResponse'
+ description: Collections deleted successfully.
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Invalid request.
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Resource not found.
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unexpected error
+ tags:
+ - Collections
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /api/rest/2.0/collections/search:
+ post:
+ description: |2+
+
+ Version: 26.4.0.cl or later
+
+
+ Gets a list of collections available in ThoughtSpot.
+
+ To get details of a specific collection, specify the collection GUID or name. You can also filter the API response based on the collection name pattern, author, and other criteria.
+
+ #### Search options
+
+ * **name_pattern**: Use '%' as a wildcard character to match collection names
+ * **collection_identifiers**: Search for specific collections by their GUIDs or names
+ * **include_metadata**: When set to `true`, includes the metadata objects within each collection in the response
+
+ **NOTE**: If the API returns an empty list, consider increasing the value of the `record_size` parameter. To search across all available collections, set `record_size` to `-1`.
+
+
+
+
+
+ operationId: searchCollections
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SearchCollectionsRequest'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CollectionSearchResponse'
+ description: Successfully retrieved list of collections
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Invalid request.
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unexpected error
+ tags:
+ - Collections
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /api/rest/2.0/collections/{collection_identifier}/update:
+ post:
+ description: |2+
+
+ Version: 26.4.0.cl or later
+
+
+ Updates an existing collection in ThoughtSpot.
+
+ #### Supported operations
+
+ This API endpoint lets you perform the following operations:
+
+ * Update collection name and description
+ * Change visibility settings
+ * Add metadata objects to the collection (operation: ADD)
+ * Remove metadata objects from the collection (operation: REMOVE)
+ * Replace all metadata objects in the collection (operation: REPLACE)
+
+ #### Operation types
+
+ * **ADD**: Adds the specified metadata objects to the existing collection without removing current items
+ * **REMOVE**: Removes only the specified metadata objects from the collection
+ * **REPLACE**: Replaces all existing metadata objects with the specified items (default behavior)
+
+
+
+
+
+ operationId: updateCollection
+ parameters:
+ - description: |-
+ Unique GUID of the collection. Note: Collection names cannot be used as
+ identifiers since duplicate names are allowed.
+ explode: false
+ in: path
+ name: collection_identifier
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateCollectionRequest'
+ required: true
+ responses:
+ "204":
+ description: Collection updated successfully. No content returned.
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Invalid request.
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Resource not found.
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unexpected error
+ tags:
+ - Collections
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /api/rest/2.0/connection-configurations/search:
+ post:
+ description: |2+
+
+ Version: 10.12.0.cl or later
+
+
+ Gets connection configuration objects.
+
+ Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.
+
+ If [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.
+
+ #### Usage guidelines
+ * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body.
+ * To fetch details of a configuration object, specify the configuration object name or GUID.
@@ -1637,18 +2302,26 @@ paths:
\ 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 ```\n2. Set `validate` to `false`.\n\n#### Create a connection\
- \ with tables\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 \"externalDatabases\":[\n {\n \
- \ \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \
- \ \"schemas\":[\n {\n \"name\":\"alldatatypes\"\
+ ,\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"authenticationType\"\
+ : \"SERVICE_ACCOUNT\",\n \"externalDatabases\":[\n\n ]\n }\n ```\n\
+ 2. 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 \"\
@@ -1670,7 +2343,10 @@ paths:
\ \"dbName\":\"AllDatatypes\"\n \
\ }\n ]\n }\n ]\n\
\ }\n ]\n }\n ]\n }\n ```\n2. Set `validate`\
- \ to `true`.\n\n\n\n\n\n"
+ \ 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\n"
operationId: createConnection
parameters: []
requestBody:
@@ -4337,23 +5013,145 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
- /api/rest/2.0/logs/fetch:
+ /api/rest/2.0/jobs/history/communication-channels/search:
post:
- description: "\n Version: 9.0.0.cl or later\n\n\nFetches security audit logs.\
- \ \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\
- If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac)\
- \ is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control)\
- \ privileges are required.\n\n\n#### Usage guidelines\n\nBy default, the API\
- \ retrieves logs for the last 24 hours. You can set a custom duration in EPOCH\
- \ time. Make sure the log duration specified in your API request doesn’t exceed\
- \ 24 hours. If you must fetch logs for a longer time range, modify the duration\
- \ and make multiple sequential API requests.\n\nUpon successful execution,\
- \ the API returns logs with the following information:\n* timestamp of the\
- \ event\n* event ID\n* event type\n* name and GUID of the user\n* IP address\
- \ of ThoughtSpot instance\n\nFor more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs).\n\
- \n\n\n\n\n"
- operationId: fetchLogs
- parameters: []
+ description: |2+
+
+ Version: 26.4.0.cl or later
+
+
+ Searches delivery history for communication channels such as webhooks. Returns channel-level delivery status for each job execution record. Use this to monitor channel health and delivery success rates across events.
+
+ Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.
+
+ **NOTE**: When `channel_type` is `WEBHOOK`, the following constraints apply:
+
+ - `job_ids`, `channel_identifiers`, and `events` each accept at most one element.
+ - When `job_ids` is provided, it is used as the sole lookup key and other filter fields are ignored.
+ - When `job_ids` is not provided, `channel_identifiers` and `events` are both required. Each must contain exactly one element, and the event object must include the `identifier` field.
+ - Records older than the configured retention period are not returned.
+
+
+
+
+
+ operationId: searchChannelHistory
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SearchChannelHistoryRequest'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ example_1:
+ description: Search webhook channel history by channel identifier
+ and event
+ value:
+ jobs:
+ - id: n.6170538a-a4d4-4712-91bf-39b353db2b72
+ status: SUCCESS
+ creation_time_in_millis: 1771599720674
+ event:
+ type: LIVEBOARD_SCHEDULE
+ id: 2bb2ff83-b8d9-4d2b-8913-b2589bb6831b
+ name: schedule-identifier
+ run_id: 90c4f1b0-08c9-4a6c-8e61-49cffd9f1550
+ recipients:
+ - type: USER
+ id: d211f619-8b72-45d3-92a7-69dde41159c7
+ name: admin-user
+ email: admin@example.com
+ detail: ""
+ try_count: 1
+ - id: n.5c5bbedb-c425-48c0-8b54-a17267b08e7c
+ status: SUCCESS
+ creation_time_in_millis: 1771599600508
+ event:
+ type: LIVEBOARD_SCHEDULE
+ id: 2bb2ff83-b8d9-4d2b-8913-b2589bb6831b
+ name: schedule-identifier
+ run_id: b9834966-fe85-4fa9-8a10-9889c01d4826
+ recipients:
+ - type: USER
+ id: d211f619-8b72-45d3-92a7-69dde41159c7
+ name: admin-user
+ email: admin@example.com
+ detail: ""
+ try_count: 1
+ example_2:
+ description: Search webhook channel history by job ID
+ value:
+ jobs:
+ - id: n.5c5bbedb-c425-48c0-8b54-a17267b08e7c
+ status: SUCCESS
+ creation_time_in_millis: 1771599600508
+ event:
+ type: LIVEBOARD_SCHEDULE
+ id: 2bb2ff83-b8d9-4d2b-8913-b2589bb6831b
+ name: schedule-identifier
+ run_id: b9834966-fe85-4fa9-8a10-9889c01d4826
+ recipients:
+ - type: USER
+ id: d211f619-8b72-45d3-92a7-69dde41159c7
+ name: admin-user
+ email: admin@example.com
+ detail: ""
+ try_count: 1
+ schema:
+ $ref: '#/components/schemas/SearchChannelHistoryResponse'
+ description: Channel status logs retrieved successfully.
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Invalid request.
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unexpected error
+ tags:
+ - Jobs
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /api/rest/2.0/logs/fetch:
+ post:
+ description: "\n Version: 9.0.0.cl or later\n\n\nFetches security audit logs.\
+ \ \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\
+ If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac)\
+ \ is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control)\
+ \ privileges are required.\n\n\n#### Usage guidelines\n\nBy default, the API\
+ \ retrieves logs for the last 24 hours. You can set a custom duration in EPOCH\
+ \ time. Make sure the log duration specified in your API request doesn’t exceed\
+ \ 24 hours. If you must fetch logs for a longer time range, modify the duration\
+ \ and make multiple sequential API requests.\n\nUpon successful execution,\
+ \ the API returns logs with the following information:\n* timestamp of the\
+ \ event\n* event ID\n* event type\n* name and GUID of the user\n* IP address\
+ \ of ThoughtSpot instance\n\nFor more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs).\n\
+ \n\n\n\n\n"
+ operationId: fetchLogs
+ parameters: []
requestBody:
content:
application/json:
@@ -5091,8 +5889,11 @@ paths:
- application/json
/api/rest/2.0/metadata/parameterize:
post:
+ deprecated: true
description: "\nParameterize fields in metadata objects. \n Version: 10.9.0.cl\
- \ or later\n\n\nAllows parameterizing fields in metadata objects in ThoughtSpot.\n\
+ \ or later\n\n\n**Note:** This API endpoint is deprecated and will be removed\
+ \ from ThoughtSpot in a future release. Use [POST /api/rest/2.0/metadata/parameterize-fields](/api/rest/2.0/metadata/parameterize-fields)\
+ \ instead.\n\nAllows parameterizing fields in metadata objects in ThoughtSpot.\n\
\nRequires appropriate permissions to modify the metadata object.\n\nThe API\
\ endpoint allows parameterizing the following types of metadata objects:\n\
* Logical Tables\n* Connections\n* Connection Configs\n\nFor a Logical Table\
@@ -5143,6 +5944,63 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
+ /api/rest/2.0/metadata/parameterize-fields:
+ post:
+ description: "\nParameterize multiple fields of metadata objects. For example\
+ \ [schemaName, databaseName] for LOGICAL_TABLE. \n Version: 26.4.0.cl or\
+ \ later\n\n\nAllows parameterizing multiple fields of metadata objects in\
+ \ ThoughtSpot. For example, you can parameterize [schemaName, databaseName]\
+ \ for LOGICAL_TABLE.\n\nRequires appropriate permissions to modify the metadata\
+ \ object.\n\nThe API endpoint allows parameterizing the following types of\
+ \ metadata objects:\n* Logical Tables\n* Connections\n* Connection Configs\n\
+ \nFor a Logical Table, the field type must be `ATTRIBUTE` and field names\
+ \ can include:\n* databaseName\n* schemaName\n* tableName\n\nFor a Connection\
+ \ or Connection Config, the field type is always `CONNECTION_PROPERTY`. In\
+ \ this case, field_names specifies the exact properties of the Connection\
+ \ or Connection Config that need to be parameterized.\n\nFor Connection Config,\
+ \ supported field names include:\n* impersonate_user\n\nYou can parameterize\
+ \ multiple fields at once by providing an array of field names.\n\n\n\n\n\n"
+ operationId: parameterizeMetadataFields
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ParameterizeMetadataFieldsRequest'
+ required: true
+ responses:
+ "204":
+ description: Parameterize successful.
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Invalid request.
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unexpected error
+ tags:
+ - Metadata
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
/api/rest/2.0/metadata/search:
post:
description: |2+
@@ -7645,6 +8503,69 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
+ /api/rest/2.0/system/communication-channels/validate:
+ post:
+ description: |2+
+
+ Version: 26.4.0.cl or later
+
+
+ Validates a communication channel configuration to ensure it is properly set up and can receive events.
+ - Use `channel_type` to specify the type of communication channel to validate (e.g., WEBHOOK).
+ - Use `channel_identifier` to provide the unique identifier or name for the communication channel.
+ - Use `event_type` to specify the event type to validate for this channel.
+
+ Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. For webhook channels, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.
+
+
+
+
+
+ operationId: validateCommunicationChannel
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ValidateCommunicationChannelRequest'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CommunicationChannelValidateResponse'
+ description: communication channel configuration validated successfully.
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Invalid request.
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unexpected error
+ tags:
+ - System
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
/api/rest/2.0/tags/assign:
post:
description: |2+
@@ -8726,10 +9647,13 @@ paths:
- application/json
/api/rest/2.0/template/variables/{identifier}/delete:
post:
- description: "\nDelete a variable \n Version: 10.14.0.cl or later\n\n\nAllows\
- \ deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and\
- \ TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage\
- \ Formula Variables in the current organization scope.\n\nThe API endpoint\
+ deprecated: true
+ description: "\nDelete a variable \n Version: 10.14.0.cl or later\n\n\n**Note:**\
+ \ This API endpoint is deprecated and will be removed from ThoughtSpot in\
+ \ a future release. Use [POST /api/rest/2.0/template/variables/delete](/api/rest/2.0/template/variables/delete)\
+ \ instead.\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION\
+ \ role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to\
+ \ manage Formula Variables in the current organization scope.\n\nThe API endpoint\
\ requires:\n* The variable identifier (ID or name)\n\nThe operation will\
\ fail if:\n* The user lacks required permissions\n* The variable doesn't\
\ exist\n* The variable is being used by other objects \n\n\n\n\n"
@@ -8775,35 +9699,27 @@ paths:
- ThoughtSpotRest
x-accepts:
- application/json
- /api/rest/2.0/template/variables/search:
+ /api/rest/2.0/template/variables/delete:
post:
- description: "\nSearch variables \n Version: 10.14.0.cl or later\n\n\nAllows\
- \ searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\
- The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables\
- \ in the current organization scope.\n\nThe API endpoint supports searching\
- \ variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name\
- \ pattern (case-insensitive, supports % for wildcard)\n\nThe search results\
- \ can be formatted in three ways:\n* METADATA - Returns only variable metadata\
- \ (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n\
- \nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n\
- * model_identifier\n\n\n\n\n\n"
- operationId: searchVariables
+ description: "\nDelete variable(s) \n Version: 26.4.0.cl or later\n\n\nAllows\
+ \ deleting multiple variables from ThoughtSpot.\n\nRequires ADMINISTRATION\
+ \ role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to\
+ \ manage Formula Variables in the current organization scope.\n\nThe API endpoint\
+ \ requires:\n* The variable identifiers (IDs or names)\n\nThe operation will\
+ \ fail if:\n* The user lacks required permissions\n* Any of the variables\
+ \ don't exist\n* Any of the variables are being used by other objects\n\n\n\
+ \n\n\n"
+ operationId: deleteVariables
parameters: []
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/SearchVariablesRequest'
+ $ref: '#/components/schemas/DeleteVariablesRequest'
required: true
responses:
- "200":
- content:
- application/json:
- schema:
- items:
- $ref: '#/components/schemas/Variable'
- type: array
- description: List of variables is successful.
+ "204":
+ description: Deletion of variable(s) is successful.
"400":
content:
application/json:
@@ -8834,16 +9750,26 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
- /api/rest/2.0/template/variables/{identifier}/update:
+ /api/rest/2.0/template/variables/{identifier}/update-values:
post:
- description: "\nUpdate a variable's name \n Version: 10.14.0.cl or later\n\n\
- \nAllows updating a variable's name in ThoughtSpot.\n\nRequires ADMINISTRATION\
- \ role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to\
+ description: "\nUpdate values for a variable \n Version: 26.4.0.cl or later\n\
+ \n\nAllows updating values for a specific variable in ThoughtSpot.\n\nRequires\
+ \ ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to\
\ manage Formula Variables in the current organization scope.\n\nThe API endpoint\
- \ allows updating:\n* The variable name\n\n\n\n\n"
- operationId: updateVariable
+ \ allows:\n* Adding new values to the variable\n* Replacing existing values\n\
+ * Deleting values from the variable\n* Resetting all values\n\nWhen updating\
+ \ variable values, you need to specify:\n* The variable identifier (ID or\
+ \ name)\n* The values to add/replace/remove\n* The operation to perform (ADD,\
+ \ REPLACE, REMOVE, RESET)\n\nBehaviour based on operation type:\n* ADD - Adds\
+ \ values to the variable if this is a list type variable, else same as replace.\n\
+ * REPLACE - Replaces all values of a given set of constraints with the current\
+ \ set of values.\n* REMOVE - Removes any values which match the set of conditions\
+ \ of the variables if this is a list type variable, else clears value.\n*\
+ \ RESET - Removes all constraints for the given variable, scope is ignored\n\
+ \n\n\n\n\n"
+ operationId: putVariableValues
parameters:
- - description: Unique id or name of the variable to update.
+ - description: Unique ID or name of the variable
explode: false
in: path
name: identifier
@@ -8855,11 +9781,11 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/UpdateVariableRequest'
+ $ref: '#/components/schemas/PutVariableValuesRequest'
required: true
responses:
"204":
- description: Variable name updated successfully.
+ description: Variable values updated successfully.
"400":
content:
application/json:
@@ -8890,33 +9816,35 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
- /api/rest/2.0/template/variables/update-values:
+ /api/rest/2.0/template/variables/search:
post:
- description: "\nUpdate values for multiple variables \n Version: 10.14.0.cl\
- \ or later\n\n\nAllows updating values for multiple variables in ThoughtSpot.\n\
- \nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows\
- \ you to manage Formula Variables in the current organization scope.\n\nThe\
- \ API endpoint allows:\n* Adding new values to variables\n* Replacing existing\
- \ values\n* Deleting values from variables\n\nWhen updating variable values,\
- \ you need to specify:\n* The variable identifiers\n* The values to add/replace/remove\
- \ for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, RESET)\n\
- \nBehaviour based on operation type:\n* ADD - Adds values to the variable\
- \ if this is a list type variable, else same as replace.\n* REPLACE - Replaces\
- \ all values of a given set of constraints with the current set of values.\n\
- * REMOVE - Removes any values which match the set of conditions of the variables\
- \ if this is a list type variable, else clears value.\n* RESET - Removes all\
- \ constrains for a given variable, scope is ignored\n\n\n\n\n\n"
- operationId: updateVariableValues
+ description: "\nSearch variables \n Version: 10.14.0.cl or later\n\n\nAllows\
+ \ searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\
+ The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables\
+ \ in the current organization scope.\n\nThe API endpoint supports searching\
+ \ variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name\
+ \ pattern (case-insensitive, supports % for wildcard)\n\nThe search results\
+ \ can be formatted in three ways:\n* METADATA - Returns only variable metadata\
+ \ (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n\
+ \nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n\
+ * model_identifier\n\n\n\n\n\n"
+ operationId: searchVariables
parameters: []
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/UpdateVariableValuesRequest'
+ $ref: '#/components/schemas/SearchVariablesRequest'
required: true
responses:
- "204":
- description: Variable values updated successfully.
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/Variable'
+ type: array
+ description: List of variables is successful.
"400":
content:
application/json:
@@ -8947,17 +9875,133 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
- /api/rest/2.0/vcs/git/branches/commit:
+ /api/rest/2.0/template/variables/{identifier}/update:
post:
- description: |2+
-
- Version: 9.2.0.cl or later
-
-
- Commits TML files of metadata objects to the Git branch configured on your instance.
-
- Requires at least edit access to objects used in the commit operation.
-
+ description: "\nUpdate a variable's name \n Version: 10.14.0.cl or later\n\n\
+ \nAllows updating a variable's name in ThoughtSpot.\n\nRequires ADMINISTRATION\
+ \ role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to\
+ \ manage Formula Variables in the current organization scope.\n\nThe API endpoint\
+ \ allows updating:\n* The variable name\n\n\n\n\n"
+ operationId: updateVariable
+ parameters:
+ - description: Unique id or name of the variable to update.
+ explode: false
+ in: path
+ name: identifier
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateVariableRequest'
+ required: true
+ responses:
+ "204":
+ description: Variable name updated successfully.
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Invalid request.
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unexpected error
+ tags:
+ - Variable
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /api/rest/2.0/template/variables/update-values:
+ post:
+ deprecated: true
+ description: "\nUpdate values for multiple variables \n Version: 10.14.0.cl\
+ \ or later\n\n\n**Note:** This API endpoint is deprecated and will be removed\
+ \ from ThoughtSpot in a future release. Use [POST /api/rest/2.0/template/variables/{identifier}/update-values](/api/rest/2.0/template/variables/%7Bidentifier%7D/update-values)\
+ \ instead.\n\nAllows updating values for multiple variables in ThoughtSpot.\n\
+ \nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows\
+ \ you to manage Formula Variables in the current organization scope.\n\nThe\
+ \ API endpoint allows:\n* Adding new values to variables\n* Replacing existing\
+ \ values\n* Deleting values from variables\n\nWhen updating variable values,\
+ \ you need to specify:\n* The variable identifiers\n* The values to add/replace/remove\
+ \ for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, RESET)\n\
+ \nBehaviour based on operation type:\n* ADD - Adds values to the variable\
+ \ if this is a list type variable, else same as replace.\n* REPLACE - Replaces\
+ \ all values of a given set of constraints with the current set of values.\n\
+ * REMOVE - Removes any values which match the set of conditions of the variables\
+ \ if this is a list type variable, else clears value.\n* RESET - Removes all\
+ \ constrains for a given variable, scope is ignored\n\n\n\n\n\n"
+ operationId: updateVariableValues
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateVariableValuesRequest'
+ required: true
+ responses:
+ "204":
+ description: Variable values updated successfully.
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Invalid request.
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unauthorized access.
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Forbidden access.
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unexpected error
+ tags:
+ - Variable
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /api/rest/2.0/vcs/git/branches/commit:
+ post:
+ description: |2+
+
+ Version: 9.2.0.cl or later
+
+
+ Commits TML files of metadata objects to the Git branch configured on your instance.
+
+ Requires at least edit access to objects used in the commit operation.
+
Before using this endpoint to push your commits:
* Enable Git integration on your instance.
@@ -14394,6 +15438,7 @@ components:
- TABLE_MAPPING
- CONNECTION_PROPERTY_PER_PRINCIPAL
- FORMULA_VARIABLE
+ - USER_PROPERTY
nullable: true
type: string
name_pattern:
@@ -14403,7 +15448,7 @@ components:
type: string
type: object
ValueScopeInput:
- description: Input for variable scope in search
+ description: Input for filtering variable values by scope in search operations
example:
principal_identifier: principal_identifier
model_identifier: model_identifier
@@ -14415,7 +15460,9 @@ components:
nullable: true
type: string
principal_type:
- description: Principal type
+ description: "Type of principal to filter by. Use USER to filter values\
+ \ assigned to specific users, or USER_GROUP to filter values assigned\
+ \ to groups."
enum:
- USER
- USER_GROUP
@@ -14426,7 +15473,8 @@ components:
nullable: true
type: string
model_identifier:
- description: Model Identifier
+ description: Unique ID or name of the model to filter by. Applicable only
+ for FORMULA_VARIABLE type.
nullable: true
type: string
type: object
@@ -14470,6 +15518,7 @@ components:
- TABLE_MAPPING
- CONNECTION_PROPERTY_PER_PRINCIPAL
- FORMULA_VARIABLE
+ - USER_PROPERTY
nullable: true
type: string
sensitive:
@@ -14512,7 +15561,9 @@ components:
description: The unique name of the org
type: string
principal_type:
- description: Principal type
+ description: "Type of principal to which this value applies. Use USER to\
+ \ assign the value to a specific user, or USER_GROUP to assign it to a\
+ \ group."
enum:
- USER
- USER_GROUP
@@ -14750,7 +15801,12 @@ components:
has_more: true
record_offset: 0
webhooks:
- - creation_time_in_millis: 0.8008282
+ - additional_headers:
+ - value: value
+ key: key
+ - value: value
+ key: key
+ creation_time_in_millis: 0.8008282
org:
name: name
id: id
@@ -14795,7 +15851,12 @@ components:
BASIC_AUTH:
password: password
username: username
- - creation_time_in_millis: 0.8008282
+ - additional_headers:
+ - value: value
+ key: key
+ - value: value
+ key: key
+ creation_time_in_millis: 0.8008282
org:
name: name
id: id
@@ -14854,6 +15915,11 @@ components:
type: object
WebhookResponse:
example:
+ additional_headers:
+ - value: value
+ key: key
+ - value: value
+ key: key
creation_time_in_millis: 0.8008282
org:
name: name
@@ -14930,6 +15996,13 @@ components:
$ref: '#/components/schemas/WebhookAuthentication'
signature_verification:
$ref: '#/components/schemas/WebhookSignatureVerification'
+ additional_headers:
+ description: "Additional headers as an array of key-value pairs. \n Version:\
+ \ 26.4.0.cl or later\n"
+ items:
+ $ref: '#/components/schemas/WebhookKeyValuePair'
+ nullable: true
+ type: array
creation_time_in_millis:
description: Creation time of the webhook configuration in milliseconds.
format: float
@@ -15071,6 +16144,22 @@ components:
- secret
- type
type: object
+ WebhookKeyValuePair:
+ description: Key-value pair for additional webhook headers.
+ example:
+ value: value
+ key: key
+ properties:
+ key:
+ description: Header name.
+ type: string
+ value:
+ description: Header value.
+ type: string
+ required:
+ - key
+ - value
+ type: object
WebhookUser:
example:
name: name
@@ -15131,56 +16220,426 @@ components:
region: region
path_prefix: path_prefix
properties:
- bucket_name:
- description: Name of the S3 bucket where webhook payloads are stored.
- type: string
- region:
- description: AWS region where the S3 bucket is located.
+ bucket_name:
+ description: Name of the S3 bucket where webhook payloads are stored.
+ type: string
+ region:
+ description: AWS region where the S3 bucket is located.
+ type: string
+ role_arn:
+ description: ARN of the IAM role used for S3 access.
+ type: string
+ external_id:
+ description: External ID for secure cross-account role assumption.
+ nullable: true
+ type: string
+ path_prefix:
+ description: Path prefix for organizing objects within the bucket.
+ nullable: true
+ type: string
+ required:
+ - bucket_name
+ - region
+ - role_arn
+ type: object
+ WebhookPagination:
+ example:
+ total_count: 1
+ record_size: 6
+ has_more: true
+ record_offset: 0
+ properties:
+ record_offset:
+ description: The starting record number from where the records are included.
+ format: int32
+ type: integer
+ record_size:
+ description: The number of records included in the response.
+ format: int32
+ type: integer
+ total_count:
+ description: Total number of webhook configurations available.
+ format: int32
+ type: integer
+ has_more:
+ description: Indicates whether more records are available beyond the current
+ response.
+ type: boolean
+ required:
+ - has_more
+ - record_offset
+ - record_size
+ - total_count
+ type: object
+ CollectionSearchResponse:
+ description: Response object for search collections operation.
+ example:
+ collections:
+ - author_name: author_name
+ metadata:
+ - identifiers:
+ - identifier: identifier
+ name: name
+ - identifier: identifier
+ name: name
+ type: type
+ - identifiers:
+ - identifier: identifier
+ name: name
+ - identifier: identifier
+ name: name
+ type: type
+ updated_at: updated_at
+ org:
+ identifier: identifier
+ name: name
+ name: name
+ description: description
+ created_at: created_at
+ id: id
+ author_id: author_id
+ - author_name: author_name
+ metadata:
+ - identifiers:
+ - identifier: identifier
+ name: name
+ - identifier: identifier
+ name: name
+ type: type
+ - identifiers:
+ - identifier: identifier
+ name: name
+ - identifier: identifier
+ name: name
+ type: type
+ updated_at: updated_at
+ org:
+ identifier: identifier
+ name: name
+ name: name
+ description: description
+ created_at: created_at
+ id: id
+ author_id: author_id
+ count: 1
+ record_size: 6
+ is_last_batch: true
+ record_offset: 0
+ properties:
+ collections:
+ description: List of collections matching the search criteria.
+ items:
+ $ref: '#/components/schemas/Collection'
+ type: array
+ record_offset:
+ description: The starting record number from where the records are included.
+ format: int32
+ nullable: true
+ type: integer
+ record_size:
+ description: The number of records returned.
+ format: int32
+ nullable: true
+ type: integer
+ is_last_batch:
+ description: Indicates if this is the last batch of results.
+ nullable: true
+ type: boolean
+ count:
+ description: Total count of records returned.
+ format: int32
+ nullable: true
+ type: integer
+ required:
+ - collections
+ type: object
+ Collection:
+ description: Response object for a collection.
+ example:
+ author_name: author_name
+ metadata:
+ - identifiers:
+ - identifier: identifier
+ name: name
+ - identifier: identifier
+ name: name
+ type: type
+ - identifiers:
+ - identifier: identifier
+ name: name
+ - identifier: identifier
+ name: name
+ type: type
+ updated_at: updated_at
+ org:
+ identifier: identifier
+ name: name
+ name: name
+ description: description
+ created_at: created_at
+ id: id
+ author_id: author_id
+ properties:
+ id:
+ description: Unique identifier of the collection.
+ type: string
+ name:
+ description: Name of the collection.
+ type: string
+ description:
+ description: Description of the collection.
+ nullable: true
+ type: string
+ metadata:
+ description: Metadata objects in the collection.
+ items:
+ $ref: '#/components/schemas/CollectionMetadataItem'
+ nullable: true
+ type: array
+ created_at:
+ description: Creation timestamp in milliseconds.
+ nullable: true
+ type: string
+ updated_at:
+ description: Last updated timestamp in milliseconds.
+ nullable: true
+ type: string
+ author_name:
+ description: Name of the author who created the collection.
+ nullable: true
+ type: string
+ author_id:
+ description: Unique identifier of the author.
+ nullable: true
+ type: string
+ org:
+ $ref: '#/components/schemas/CollectionEntityIdentifier'
+ required:
+ - id
+ - name
+ type: object
+ CollectionMetadataItem:
+ description: Metadata item in a collection response.
+ example:
+ identifiers:
+ - identifier: identifier
+ name: name
+ - identifier: identifier
+ name: name
+ type: type
+ properties:
+ type:
+ description: Type of the metadata object.
+ nullable: true
+ type: string
+ identifiers:
+ description: List of identifiers for this metadata type.
+ items:
+ $ref: '#/components/schemas/CollectionEntityIdentifier'
+ nullable: true
+ type: array
+ type: object
+ CollectionEntityIdentifier:
+ description: Entity identifier with name.
+ example:
+ identifier: identifier
+ name: name
+ properties:
+ identifier:
+ description: Unique identifier of the entity.
+ nullable: true
+ type: string
+ name:
+ description: Name of the entity.
+ nullable: true
+ type: string
+ type: object
+ ChannelHistoryEventInput:
+ description: Event specification for channel history search.
+ example:
+ identifier: identifier
+ type: LIVEBOARD_SCHEDULE
+ properties:
+ type:
+ description: Type of the event.
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ identifier:
+ description: Unique ID or name of the event.
+ nullable: true
+ type: string
+ required:
+ - type
+ type: object
+ SearchChannelHistoryResponse:
+ description: Response wrapper for channel delivery history.
+ example:
+ jobs:
+ - creation_time_in_millis: 0.8008282
+ recipients:
+ - name: name
+ id: id
+ type: USER
+ email: email
+ - name: name
+ id: id
+ type: USER
+ email: email
+ try_count: 6
+ id: id
+ detail: detail
+ event:
+ run_id: run_id
+ name: name
+ id: id
+ type: LIVEBOARD_SCHEDULE
+ status: PENDING
+ - creation_time_in_millis: 0.8008282
+ recipients:
+ - name: name
+ id: id
+ type: USER
+ email: email
+ - name: name
+ id: id
+ type: USER
+ email: email
+ try_count: 6
+ id: id
+ detail: detail
+ event:
+ run_id: run_id
+ name: name
+ id: id
+ type: LIVEBOARD_SCHEDULE
+ status: PENDING
+ properties:
+ jobs:
+ description: List of job execution records.
+ items:
+ $ref: '#/components/schemas/ChannelHistoryJob'
+ type: array
+ required:
+ - jobs
+ type: object
+ ChannelHistoryJob:
+ description: A single job execution record for a channel.
+ example:
+ creation_time_in_millis: 0.8008282
+ recipients:
+ - name: name
+ id: id
+ type: USER
+ email: email
+ - name: name
+ id: id
+ type: USER
+ email: email
+ try_count: 6
+ id: id
+ detail: detail
+ event:
+ run_id: run_id
+ name: name
+ id: id
+ type: LIVEBOARD_SCHEDULE
+ status: PENDING
+ properties:
+ id:
+ description: Unique identifier for this job.
+ type: string
+ status:
+ description: Delivery status of this job.
+ enum:
+ - PENDING
+ - RETRY
+ - SUCCESS
+ - FAILED
+ type: string
+ creation_time_in_millis:
+ description: Timestamp when this job was created (epoch milliseconds).
+ format: float
+ type: number
+ event:
+ $ref: '#/components/schemas/ChannelHistoryEventInfo'
+ recipients:
+ description: "The users, groups or external recipients for this job."
+ items:
+ $ref: '#/components/schemas/JobRecipient'
+ nullable: true
+ type: array
+ detail:
+ description: Additional delivery details such as HTTP response code or error
+ message.
+ nullable: true
+ type: string
+ try_count:
+ description: Number of attempts made. 1 indicates first attempt.
+ format: int32
+ nullable: true
+ type: integer
+ required:
+ - creation_time_in_millis
+ - id
+ - status
+ type: object
+ ChannelHistoryEventInfo:
+ description: Event metadata for the triggering event associated with a job.
+ example:
+ run_id: run_id
+ name: name
+ id: id
+ type: LIVEBOARD_SCHEDULE
+ properties:
+ type:
+ description: Type of the event.
+ enum:
+ - LIVEBOARD_SCHEDULE
type: string
- role_arn:
- description: ARN of the IAM role used for S3 access.
+ id:
+ description: Unique ID of the event.
type: string
- external_id:
- description: External ID for secure cross-account role assumption.
+ name:
+ description: Name of the event.
nullable: true
type: string
- path_prefix:
- description: Path prefix for organizing objects within the bucket.
+ run_id:
+ description: Unique run ID for this event execution.
nullable: true
type: string
required:
- - bucket_name
- - region
- - role_arn
+ - id
+ - type
type: object
- WebhookPagination:
+ JobRecipient:
+ description: "A recipient (user, group, or external) for a job execution."
example:
- total_count: 1
- record_size: 6
- has_more: true
- record_offset: 0
+ name: name
+ id: id
+ type: USER
+ email: email
properties:
- record_offset:
- description: The starting record number from where the records are included.
- format: int32
- type: integer
- record_size:
- description: The number of records included in the response.
- format: int32
- type: integer
- total_count:
- description: Total number of webhook configurations available.
- format: int32
- type: integer
- has_more:
- description: Indicates whether more records are available beyond the current
- response.
- type: boolean
+ type:
+ description: Type of the recipient.
+ enum:
+ - USER
+ - EXTERNAL
+ type: string
+ id:
+ description: Unique ID of the recipient.
+ nullable: true
+ type: string
+ name:
+ description: Name of the recipient.
+ nullable: true
+ type: string
+ email:
+ description: Email of the recipient.
+ nullable: true
+ type: string
required:
- - has_more
- - record_offset
- - record_size
- - total_count
+ - type
type: object
GenericInfo:
example:
@@ -16141,6 +17600,133 @@ components:
nullable: true
type: array
type: object
+ CommunicationChannelValidateResponse:
+ description: Response containing validation results for communication channel
+ configuration.
+ example:
+ channel_name: channel_name
+ event_type: LIVEBOARD_SCHEDULE
+ job_id: job_id
+ result_code: SUCCESS
+ details:
+ - error_message: error_message
+ validation_step: HTTP_CONNECTION_CHECK
+ aws_s3_info:
+ object_key: object_key
+ file_name: file_name
+ bucket_name: bucket_name
+ http_status: 0
+ status: SUCCESS
+ - error_message: error_message
+ validation_step: HTTP_CONNECTION_CHECK
+ aws_s3_info:
+ object_key: object_key
+ file_name: file_name
+ bucket_name: bucket_name
+ http_status: 0
+ status: SUCCESS
+ channel_type: WEBHOOK
+ channel_id: channel_id
+ properties:
+ channel_type:
+ description: Type of communication channel that was validated.
+ enum:
+ - WEBHOOK
+ type: string
+ channel_id:
+ description: "ID of the communication channel (e.g., webhook_id)."
+ type: string
+ channel_name:
+ description: "Name of the communication channel (e.g., webhook name)."
+ nullable: true
+ type: string
+ event_type:
+ description: Event type that was validated.
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ job_id:
+ description: Unique Job Id of the validation.
+ type: string
+ result_code:
+ description: Overall result of the validation.
+ enum:
+ - SUCCESS
+ - FAILED
+ - PARTIAL_SUCCESS
+ type: string
+ details:
+ description: Detailed results of various validation sub-steps.
+ items:
+ $ref: '#/components/schemas/ChannelValidationDetail'
+ nullable: true
+ type: array
+ required:
+ - channel_id
+ - channel_type
+ - event_type
+ - job_id
+ - result_code
+ type: object
+ ChannelValidationDetail:
+ description: Validation detail result for a sub-step.
+ example:
+ error_message: error_message
+ validation_step: HTTP_CONNECTION_CHECK
+ aws_s3_info:
+ object_key: object_key
+ file_name: file_name
+ bucket_name: bucket_name
+ http_status: 0
+ status: SUCCESS
+ properties:
+ validation_step:
+ description: The validation step that was performed.
+ enum:
+ - HTTP_CONNECTION_CHECK
+ - STORAGE_FILE_UPLOAD_CHECK
+ type: string
+ status:
+ description: Status of this validation step.
+ enum:
+ - SUCCESS
+ - FAILED
+ type: string
+ http_status:
+ description: HTTP status code returned by the channel (if applicable).
+ format: int32
+ nullable: true
+ type: integer
+ error_message:
+ description: Error message from the channel or validation process.
+ nullable: true
+ type: string
+ aws_s3_info:
+ $ref: '#/components/schemas/ChannelValidationAwsS3Info'
+ required:
+ - status
+ - validation_step
+ type: object
+ ChannelValidationAwsS3Info:
+ description: AWS S3 storage information returned from a validation step.
+ example:
+ object_key: object_key
+ file_name: file_name
+ bucket_name: bucket_name
+ properties:
+ bucket_name:
+ description: Name of the S3 bucket.
+ nullable: true
+ type: string
+ file_name:
+ description: Name of the uploaded file.
+ nullable: true
+ type: string
+ object_key:
+ description: Key of the object in S3 storage.
+ nullable: true
+ type: string
+ type: object
TagMetadataTypeInput:
example:
identifier: identifier
@@ -16334,7 +17920,7 @@ components:
nullable: true
type: boolean
include_obj_id:
- default: false
+ default: true
description: Boolean flag to export Object ID of the object. This flag will
work only after the Object ID feature has been enabled. Please contact
support to enable the feature.
@@ -18378,16 +19964,66 @@ components:
- variable_values
type: object
VariableUpdateScopeInput:
- description: Input for variable value update in batch operations
+ description: Input for defining the scope of variable value assignments in batch
+ update operations
+ example:
+ principal_identifier: principal_identifier
+ model_identifier: model_identifier
+ org_identifier: org_identifier
+ principal_type: USER
+ priority: 0
+ properties:
+ org_identifier:
+ description: The unique name of the org
+ type: string
+ principal_type:
+ description: "Type of principal to which the variable value applies. Use\
+ \ USER to assign values to a specific user, or USER_GROUP to assign values\
+ \ to a group."
+ enum:
+ - USER
+ - USER_GROUP
+ nullable: true
+ type: string
+ principal_identifier:
+ description: Unique ID or name of the principal
+ nullable: true
+ type: string
+ model_identifier:
+ description: Unique ID or name of the model. Required for FORMULA_VARIABLE
+ type to scope the variable value to a specific worksheet.
+ nullable: true
+ type: string
+ priority:
+ description: "The priority level for this scope assignment, used for conflict\
+ \ resolution when multiple values match. Higher priority values (larger\
+ \ numbers) take precedence."
+ format: int32
+ nullable: true
+ type: integer
+ required:
+ - org_identifier
+ type: object
+ VariablePutAssignmentInput:
+ description: Input for variable value put operations
example:
principal_identifier: principal_identifier
model_identifier: model_identifier
org_identifier: org_identifier
+ assigned_values:
+ - assigned_values
+ - assigned_values
principal_type: USER
priority: 0
properties:
+ assigned_values:
+ description: Values of the variable
+ items:
+ type: string
+ type: array
org_identifier:
description: The unique name of the org
+ nullable: true
type: string
principal_type:
description: Principal type
@@ -18410,7 +20046,7 @@ components:
nullable: true
type: integer
required:
- - org_identifier
+ - assigned_values
type: object
CreateEmailCustomizationResponse:
example:
@@ -18564,6 +20200,10 @@ components:
\ or later\n"
nullable: true
type: boolean
+ hide_logo_url:
+ description: "Whether to hide logo \n Version: 26.4.0.cl or later\n"
+ nullable: true
+ type: boolean
type: object
ExternalTableInput:
properties:
@@ -18728,6 +20368,22 @@ components:
- region
- role_arn
type: object
+ WebhookKeyValuePairInput:
+ description: Key-value pair input for additional webhook headers.
+ example:
+ value: value
+ key: key
+ properties:
+ key:
+ description: Header name.
+ type: string
+ value:
+ description: Header value.
+ type: string
+ required:
+ - key
+ - value
+ type: object
WebhookDeleteResponse:
example:
failed_webhooks:
@@ -18738,7 +20394,12 @@ components:
id: id
error: error
deleted_webhooks:
- - creation_time_in_millis: 0.8008282
+ - additional_headers:
+ - value: value
+ key: key
+ - value: value
+ key: key
+ creation_time_in_millis: 0.8008282
org:
name: name
id: id
@@ -18783,7 +20444,12 @@ components:
BASIC_AUTH:
password: password
username: username
- - creation_time_in_millis: 0.8008282
+ - additional_headers:
+ - value: value
+ key: key
+ - value: value
+ key: key
+ creation_time_in_millis: 0.8008282
org:
name: name
id: id
@@ -18842,38 +20508,130 @@ components:
deleted_webhooks:
description: List of successfully deleted webhooks.
items:
- $ref: '#/components/schemas/WebhookResponse'
+ $ref: '#/components/schemas/WebhookResponse'
+ type: array
+ failed_webhooks:
+ description: List of webhooks that failed to delete with error details.
+ items:
+ $ref: '#/components/schemas/WebhookDeleteFailure'
+ type: array
+ required:
+ - deleted_count
+ - deleted_webhooks
+ - failed_count
+ - failed_webhooks
+ type: object
+ WebhookDeleteFailure:
+ example:
+ name: name
+ id: id
+ error: error
+ properties:
+ id:
+ description: Unique identifier of the webhook that failed to delete.
+ type: string
+ name:
+ description: Name of the webhook that failed to delete.
+ type: string
+ error:
+ description: Error message describing why the deletion failed.
+ type: string
+ required:
+ - error
+ - id
+ - name
+ type: object
+ CollectionMetadataInput:
+ description: Input type for metadata to be added to a collection.
+ example:
+ identifiers:
+ - identifiers
+ - identifiers
+ type: LIVEBOARD
+ properties:
+ type:
+ description: Type of metadata object.
+ enum:
+ - LIVEBOARD
+ - ANSWER
+ - LOGICAL_TABLE
+ - COLLECTION
+ type: string
+ identifiers:
+ description: List of unique IDs or names of metadata objects.
+ items:
+ type: string
+ type: array
+ required:
+ - identifiers
+ - type
+ type: object
+ CollectionDeleteResponse:
+ description: Response object for delete collection operation.
+ example:
+ metadata_skipped:
+ - identifiers:
+ - name: name
+ id: id
+ - name: name
+ id: id
+ type: type
+ - identifiers:
+ - name: name
+ id: id
+ - name: name
+ id: id
+ type: type
+ metadata_deleted:
+ - identifiers:
+ - name: name
+ id: id
+ - name: name
+ id: id
+ type: type
+ - identifiers:
+ - name: name
+ id: id
+ - name: name
+ id: id
+ type: type
+ properties:
+ metadata_deleted:
+ description: List of metadata objects that were successfully deleted.
+ items:
+ $ref: '#/components/schemas/CollectionDeleteTypeIdentifiers'
+ nullable: true
type: array
- failed_webhooks:
- description: List of webhooks that failed to delete with error details.
+ metadata_skipped:
+ description: |-
+ List of metadata objects that were skipped during deletion.
+ Objects may be skipped due to lack of permissions, dependencies, or other constraints.
items:
- $ref: '#/components/schemas/WebhookDeleteFailure'
+ $ref: '#/components/schemas/CollectionDeleteTypeIdentifiers'
+ nullable: true
type: array
- required:
- - deleted_count
- - deleted_webhooks
- - failed_count
- - failed_webhooks
type: object
- WebhookDeleteFailure:
+ CollectionDeleteTypeIdentifiers:
+ description: Group of metadata objects identified by type.
example:
- name: name
- id: id
- error: error
+ identifiers:
+ - name: name
+ id: id
+ - name: name
+ id: id
+ type: type
properties:
- id:
- description: Unique identifier of the webhook that failed to delete.
- type: string
- name:
- description: Name of the webhook that failed to delete.
- type: string
- error:
- description: Error message describing why the deletion failed.
+ type:
+ description: "Type of the metadata object (e.g., Collection, Worksheet,\
+ \ Table)."
+ nullable: true
type: string
- required:
- - error
- - id
- - name
+ identifiers:
+ description: List of metadata identifiers belonging to the given type.
+ items:
+ $ref: '#/components/schemas/GenericInfo'
+ nullable: true
+ type: array
type: object
Runtime_Filter:
description: List of runtime parameters need to set during the session.
@@ -19472,6 +21230,156 @@ components:
required:
- token
type: object
+ CreateCollectionRequest:
+ example:
+ metadata:
+ - identifiers:
+ - identifiers
+ - identifiers
+ type: LIVEBOARD
+ - identifiers:
+ - identifiers
+ - identifiers
+ type: LIVEBOARD
+ name: name
+ description: description
+ properties:
+ name:
+ description: Name of the collection.
+ type: string
+ description:
+ description: Description of the collection.
+ type: string
+ metadata:
+ description: Metadata objects to add to the collection.
+ items:
+ $ref: '#/components/schemas/CollectionMetadataInput'
+ type: array
+ required:
+ - name
+ type: object
+ DeleteCollectionRequest:
+ example:
+ dry_run: false
+ collection_identifiers:
+ - collection_identifiers
+ - collection_identifiers
+ delete_children: false
+ properties:
+ collection_identifiers:
+ description: |-
+ Unique GUIDs of collections to delete. Note: Collection names cannot be
+ used as identifiers since duplicate names are allowed.
+ items:
+ type: string
+ type: array
+ delete_children:
+ default: false
+ description: Flag to delete child objects of the collection that the user
+ has access to.
+ nullable: true
+ type: boolean
+ dry_run:
+ default: false
+ description: |-
+ Preview deletion without actually deleting. When set to true, returns
+ what would be deleted without performing the actual deletion.
+ nullable: true
+ type: boolean
+ required:
+ - collection_identifiers
+ type: object
+ SearchCollectionsRequest:
+ example:
+ created_by_user_identifiers:
+ - created_by_user_identifiers
+ - created_by_user_identifiers
+ name_pattern: name_pattern
+ record_size: 6
+ include_metadata: false
+ collection_identifiers:
+ - collection_identifiers
+ - collection_identifiers
+ sort_options: ""
+ record_offset: 0
+ properties:
+ name_pattern:
+ description: |-
+ A pattern to match case-insensitive name of the Collection object.
+ Use '%' for wildcard match.
+ type: string
+ record_offset:
+ default: 0
+ description: The starting record number from where the records should be
+ included.
+ format: int32
+ type: integer
+ record_size:
+ default: 10
+ description: |-
+ The number of records that should be included.
+ -1 implies no pagination.
+ format: int32
+ type: integer
+ collection_identifiers:
+ description: |-
+ Unique GUIDs of collections to search. Note: Collection names cannot be
+ used as identifiers since duplicate names are allowed.
+ items:
+ type: string
+ type: array
+ created_by_user_identifiers:
+ description: |-
+ Filter collections by author. Provide unique IDs or names of users
+ who created the collections.
+ items:
+ type: string
+ type: array
+ include_metadata:
+ default: false
+ description: Include collection metadata items in the response.
+ nullable: true
+ type: boolean
+ sort_options:
+ allOf:
+ - $ref: '#/components/schemas/SortOptions'
+ description: Sort options.
+ type: object
+ UpdateCollectionRequest:
+ example:
+ metadata:
+ - identifiers:
+ - identifiers
+ - identifiers
+ type: LIVEBOARD
+ - identifiers:
+ - identifiers
+ - identifiers
+ type: LIVEBOARD
+ name: name
+ description: description
+ operation: REPLACE
+ properties:
+ name:
+ description: Name of the collection.
+ type: string
+ description:
+ description: Description of the collection.
+ type: string
+ metadata:
+ description: "Metadata objects to add, remove, or replace in the collection."
+ items:
+ $ref: '#/components/schemas/CollectionMetadataInput'
+ type: array
+ operation:
+ default: REPLACE
+ description: Type of update operation. Default operation type is REPLACE.
+ enum:
+ - ADD
+ - REMOVE
+ - REPLACE
+ type: string
+ type: object
ConnectionConfigurationSearchRequest:
example:
policy_type: NO_POLICY
@@ -21126,6 +23034,58 @@ components:
- REPLACE
type: string
type: object
+ SearchChannelHistoryRequest:
+ example:
+ channel_status: PENDING
+ channel_identifiers:
+ - channel_identifiers
+ - channel_identifiers
+ job_ids:
+ - job_ids
+ - job_ids
+ start_epoch_time_in_millis: 0.8008282
+ channel_type: WEBHOOK
+ events:
+ - identifier: identifier
+ type: LIVEBOARD_SCHEDULE
+ - identifier: identifier
+ type: LIVEBOARD_SCHEDULE
+ properties:
+ channel_type:
+ description: Type of communication channel to search history for.
+ enum:
+ - WEBHOOK
+ type: string
+ job_ids:
+ description: List of job execution record IDs to retrieve.
+ items:
+ type: string
+ type: array
+ channel_identifiers:
+ description: List of channel IDs or names to filter by.
+ items:
+ type: string
+ type: array
+ channel_status:
+ description: Filter by channel delivery status.
+ enum:
+ - PENDING
+ - RETRY
+ - SUCCESS
+ - FAILED
+ type: string
+ events:
+ description: Filter by events that triggered the channel.
+ items:
+ $ref: '#/components/schemas/ChannelHistoryEventInput'
+ type: array
+ start_epoch_time_in_millis:
+ description: Filter records created on or after this time (epoch milliseconds).
+ format: float
+ type: number
+ required:
+ - channel_type
+ type: object
FetchLogsRequest:
example:
log_type: SECURITY_AUDIT
@@ -21602,6 +23562,48 @@ components:
- metadata_identifier
- variable_identifier
type: object
+ ParameterizeMetadataFieldsRequest:
+ example:
+ metadata_identifier: metadata_identifier
+ metadata_type: LOGICAL_TABLE
+ field_names:
+ - field_names
+ - field_names
+ variable_identifier: variable_identifier
+ field_type: ATTRIBUTE
+ properties:
+ metadata_type:
+ description: Type of metadata object to parameterize.
+ enum:
+ - LOGICAL_TABLE
+ - CONNECTION
+ - CONNECTION_CONFIG
+ type: string
+ metadata_identifier:
+ description: Unique ID or name of the metadata object to parameterize.
+ type: string
+ field_type:
+ description: Type of field in the metadata to parameterize.
+ enum:
+ - ATTRIBUTE
+ - CONNECTION_PROPERTY
+ type: string
+ field_names:
+ description: "JSON array of field names to parameterize. Example: [schemaName,\
+ \ databaseName, tableName]"
+ items:
+ type: string
+ type: array
+ variable_identifier:
+ description: Unique ID or name of the variable to use for parameterization
+ of these fields.
+ type: string
+ required:
+ - field_names
+ - field_type
+ - metadata_identifier
+ - variable_identifier
+ type: object
SearchMetadataRequest:
example:
metadata:
@@ -24476,6 +26478,30 @@ components:
required:
- configuration
type: object
+ ValidateCommunicationChannelRequest:
+ example:
+ event_type: LIVEBOARD_SCHEDULE
+ channel_identifier: channel_identifier
+ channel_type: WEBHOOK
+ properties:
+ channel_type:
+ description: "Type of communication channel to validate (e.g., WEBHOOK)."
+ enum:
+ - WEBHOOK
+ type: string
+ channel_identifier:
+ description: Unique identifier or name for the communication channel.
+ type: string
+ event_type:
+ description: Event type to validate for this channel.
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ required:
+ - channel_identifier
+ - channel_type
+ - event_type
+ type: object
AssignTagRequest:
example:
metadata:
@@ -25292,6 +27318,57 @@ components:
- name
- type
type: object
+ DeleteVariablesRequest:
+ example:
+ identifiers:
+ - identifiers
+ - identifiers
+ properties:
+ identifiers:
+ description: Unique id(s) or name(s) of the variable(s) to delete
+ items:
+ type: string
+ type: array
+ required:
+ - identifiers
+ type: object
+ PutVariableValuesRequest:
+ example:
+ variable_assignment:
+ - principal_identifier: principal_identifier
+ model_identifier: model_identifier
+ org_identifier: org_identifier
+ assigned_values:
+ - assigned_values
+ - assigned_values
+ principal_type: USER
+ priority: 0
+ - principal_identifier: principal_identifier
+ model_identifier: model_identifier
+ org_identifier: org_identifier
+ assigned_values:
+ - assigned_values
+ - assigned_values
+ principal_type: USER
+ priority: 0
+ operation: ADD
+ properties:
+ operation:
+ description: Operation to perform
+ enum:
+ - ADD
+ - REMOVE
+ - REPLACE
+ - RESET
+ type: string
+ variable_assignment:
+ description: Variable assignments
+ items:
+ $ref: '#/components/schemas/VariablePutAssignmentInput'
+ type: array
+ required:
+ - variable_assignment
+ type: object
SearchVariablesRequest:
example:
response_content: METADATA
@@ -25379,12 +27456,17 @@ components:
priority: 0
properties:
variable_assignment:
- description: Variables and values to update
+ description: "Array of variable assignment objects specifying the variable\
+ \ identifier, values to assign, and the operation type (ADD, REMOVE, REPLACE,\
+ \ or RESET) to perform on each variable."
items:
$ref: '#/components/schemas/VariableUpdateAssignmentInput'
type: array
variable_value_scope:
- description: Variables and values to update
+ description: "Array of scope objects defining where the variable values\
+ \ apply, including organization context, optional principal constraints\
+ \ (user or group), model reference for formula variables, and priority\
+ \ for conflict resolution."
items:
$ref: '#/components/schemas/VariableUpdateScopeInput'
type: array
@@ -25685,6 +27767,11 @@ components:
CreateWebhookConfigurationRequest:
example:
url_params: "{}"
+ additional_headers:
+ - value: value
+ key: key
+ - value: value
+ key: key
signature_verification: ""
name: name
description: description
@@ -25730,6 +27817,13 @@ components:
: \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\"\
, \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"\
}}} \n Version: 26.3.0.cl or later\n"
+ additional_headers:
+ description: "Additional headers as an array of key-value pairs.\nExample:\
+ \ [{\"key\": \"X-Custom-Header\", \"value\": \"custom_value\"}] \n Version:\
+ \ 26.4.0.cl or later\n"
+ items:
+ $ref: '#/components/schemas/WebhookKeyValuePairInput'
+ type: array
required:
- events
- name
@@ -25789,6 +27883,11 @@ components:
UpdateWebhookConfigurationRequest:
example:
url_params: "{}"
+ additional_headers:
+ - value: value
+ key: key
+ - value: value
+ key: key
signature_verification: ""
name: name
description: description
@@ -25834,6 +27933,13 @@ components:
: \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\"\
, \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"\
}}} \n Version: 26.3.0.cl or later\n"
+ additional_headers:
+ description: "Additional headers as an array of key-value pairs.\nExample:\
+ \ [{\"key\": \"X-Custom-Header\", \"value\": \"custom_value\"}] \n Version:\
+ \ 26.4.0.cl or later\n"
+ items:
+ $ref: '#/components/schemas/WebhookKeyValuePairInput'
+ type: array
type: object
dbtConnection_request:
properties:
@@ -26010,6 +28116,11 @@ x-roles:
tags:
- 9.12.0.cl
description: Roles for version 9.12.0.cl
+- name: 26.4.0.cl
+ id: 26.4.0.cl
+ tags:
+ - 26.4.0.cl
+ description: Roles for version 26.4.0.cl
- name: 10.12.0.cl
id: 10.12.0.cl
tags:
diff --git a/sdks/java/build.gradle b/sdks/java/build.gradle
index e0105779b..e9809c9a0 100644
--- a/sdks/java/build.gradle
+++ b/sdks/java/build.gradle
@@ -4,7 +4,7 @@ apply plugin: 'java'
apply plugin: 'com.diffplug.spotless'
group = 'com.thoughtspot'
-version = '2.22.0'
+version = '2.23.0'
buildscript {
repositories {
diff --git a/sdks/java/build.sbt b/sdks/java/build.sbt
index d48524658..e46a88f47 100644
--- a/sdks/java/build.sbt
+++ b/sdks/java/build.sbt
@@ -2,7 +2,7 @@ lazy val root = (project in file(".")).
settings(
organization := "com.thoughtspot",
name := "rest-api-sdk",
- version := "2.22.0",
+ version := "2.23.0",
scalaVersion := "2.11.4",
scalacOptions ++= Seq("-feature"),
javacOptions in compile ++= Seq("-Xlint:deprecation"),
diff --git a/sdks/java/docs/AiApi.md b/sdks/java/docs/AiApi.md
index 34c815362..143391723 100644
--- a/sdks/java/docs/AiApi.md
+++ b/sdks/java/docs/AiApi.md
@@ -23,7 +23,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.13.0.cl or later
+ Version: 26.2.0.cl or later Creates a new Spotter agent conversation based on the provided context and settings. The endpoint was in Beta from 26.2.0.cl through 26.4.0.cl. Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. #### Usage guidelines The request must include the `metadata_context` parameter to define the conversation context. The context type can be one of: - `DATA_SOURCE` *(available from 26.5.0.cl)*: targets a specific data source. Provide `data_source_identifier` in `data_source_context` for a single data source, or `data_source_identifiers` for multi-data-source context. The deprecated `guid` field is accepted for backwards compatibility. - `AUTO_MODE` *(available from 26.5.0.cl)*: automatically discovers and selects the most relevant datasets for the user's queries. > **Note for callers on versions 26.2.0.cl – 26.4.0.cl (Beta):** use the lowercase `data_source` enum value with the `guid` field instead of the above. Example: `{ \"type\": \"data_source\", \"data_source_context\": { \"guid\": \"<worksheet-id>\" } }`. The `conversation_settings` parameter controls which Spotter capabilities are enabled for the conversation: - `enable_contextual_change_analysis` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl - `enable_natural_language_answer_generation` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl - `enable_reasoning` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl - `enable_save_chat` (default: `false`, *available from 26.5.0.cl*) — enables saving the conversation for later retrieval via conversation history If the request is successful, the response includes a unique `conversation_identifier` that must be passed to `sendAgentConversationMessage` or `sendAgentConversationMessageStreaming` to send messages within this conversation. The response also includes `conversation_id` with the same value for backwards compatibility; use `conversation_identifier` for new integrations. #### Example request ```json { \"metadata_context\": { \"type\": \"DATA_SOURCE\", \"data_source_context\": { \"data_source_identifier\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\" } }, \"conversation_settings\": {} } ``` #### Error responses | Code | Description | | ---- | --------------------------------------------------------------------------------------------------------------------------------------- | | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. | > ###### Note: > > - This endpoint was in Beta from 26.2.0.cl through 26.4.0.cl and is Generally Available from version 26.5.0.cl. > - This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -50,6 +50,8 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -58,7 +60,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.4.0.cl or later Creates a Conversation object to start an AI-driven conversation based on a specific data model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines This API requires the `metadata_identifier` parameter to define the context for the conversation. You can also specify the tokens to initiate the conversation as shown in this example: `\"tokens\": \"[tea],[sales],[type]\"` If the API request is successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ Version: 10.4.0.cl or later Creates a new conversation session tied to a specific data model for AI-driven natural language querying. Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. #### Usage guidelines The request must include: - `metadata_identifier`: the unique ID of the data source that provides context for the conversation Optionally, you can provide: - `tokens`: a token string to set initial context for the conversation (e.g., `\"[sales],[item type],[state]\"`) If the request is successful, ThoughtSpot returns a unique `conversation_identifier` that must be passed to `sendMessage` to continue the conversation. #### Error responses | Code | Description | |------|-------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. | > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -85,6 +87,8 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -93,7 +97,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.15.0.cl or later Provides relevant data source recommendations for a user-submitted natural language query. To use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response. #### Usage guidelines The request must include a `query` string via the request body. The returned results include metadata such as: - `confidence`: a float indicating the model's confidence in the relevance of each recommendation - `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source - `reasoning`: rationale provided by the LLM to explain why each data source was recommended If the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
+ Version: 10.15.0.cl or later Suggests the most relevant data sources for a given natural language query, ranked by confidence with LLM-generated reasoning. Requires `CAN_USE_SPOTTER` privilege and at least view-level access to the underlying metadata entities referenced in the response. #### Usage guidelines The request must include: - `query`: the natural language question to find relevant data sources for If the request is successful, the API returns a ranked list of suggested data sources, each containing: - `confidence`: a float score indicating the model's confidence in the relevance of the suggestion - `details`: metadata about the data source - `data_source_identifier`: the unique ID of the data source - `data_source_name`: the display name of the data source - `description`: a description of the data source - `reasoning`: LLM-generated rationale explaining why the data source was recommended #### Error responses | Code | Description | |------|--------------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the underlying metadata entities. | > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
### Parameters
@@ -120,6 +124,8 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -128,7 +134,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`.
+ Version: 10.15.0.cl or later Retrieves existing natural language (NL) instructions configured for a specific data model. These instructions guide the AI system in understanding data context and generating more accurate responses. Requires `CAN_USE_SPOTTER` privilege, at least view access on the data model, and a bearer token corresponding to the org where the data model exists. #### Usage guidelines The request must include: - `data_source_identifier`: the unique ID of the data model to retrieve instructions for If the request is successful, the API returns: - `nl_instructions_info`: an array of instruction objects, each containing: - `instructions`: the configured text instructions for AI processing - `scope`: the scope of the instruction — currently only `GLOBAL` is supported #### Instructions scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) #### Error responses | Code | Description | |------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege, lacks view access on the data model, or the bearer token does not correspond to the org where the data model exists. | > ###### Note: > > - To use this API, the user needs at least view access on the data model, and must use the bearer token corresponding to the org where the data model exists. > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > - Available from version 10.15.0.cl and later. > - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > - Use this API to review currently configured instructions before modifying them with `setNLInstructions`.
### Parameters
@@ -155,6 +161,8 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -163,7 +171,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.13.0.cl or later Breaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata. To use this API, the user must have at least view-level access to the referenced metadata objects. #### Usage guidelines To accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`. You can further enhance the quality and precision of breakdown by providing additional `ai_context` such as: - `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. - `instructions`: User specific text instructions sent to AI system for processing the query. Additional optional parameters include: - `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. - `bypass_cache`: If set to true, forces fresh computation instead of returning cached results. If the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ Version: 10.13.0.cl or later Breaks down a natural language query into a series of smaller analytical sub-questions, each mapped to a relevant data source. Requires `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced metadata objects. #### Usage guidelines The request must include: - `query`: the natural language question to decompose into analytical sub-questions - `metadata_context`: at least one of the following context identifiers to guide question generation: - `conversation_identifier` — an existing conversation session ID - `answer_identifiers` — a list of Answer GUIDs - `liveboard_identifiers` — a list of Liveboard GUIDs - `data_source_identifiers` — a list of data source GUIDs Optional parameters for refining the output: - `ai_context`: additional context to improve response quality - `content` — supplementary text or CSV data as string input - `instructions` — custom text instructions for the AI system - `limit_relevant_questions`: maximum number of questions to return (default: `5`) - `bypass_cache`: if `true`, forces fresh computation instead of returning cached results If the request is successful, the API returns a list of relevant analytical questions, each containing: - `query`: the generated sub-question - `data_source_identifier`: the unique ID of the data source the question targets - `data_source_name`: the display name of the corresponding data source #### Error responses | Code | Description | |------|---------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view access to the referenced metadata objects. | > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -190,6 +198,8 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -198,7 +208,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.7.0.cl or later
+ Version: 10.7.0.cl or later **Deprecated** — Use `getRelevantQuestions` instead (available from 10.13.0.cl). Breaks down a topical or goal-oriented natural language question into smaller, actionable analytical sub-questions, each mapped to a relevant data source for independent execution. Requires `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced metadata objects. #### Usage guidelines The request accepts the following parameters: - `nlsRequest`: contains the user `query` to decompose, along with optional `instructions` and `bypassCache` flag - `worksheetIds`: list of data source identifiers to scope the decomposition - `answerIds`: list of Answer GUIDs whose data guides the response - `liveboardIds`: list of Liveboard GUIDs whose data guides the response - `conversationId`: an existing conversation session ID for context continuity - `content`: supplementary text or CSV data to improve response quality - `maxDecomposedQueries`: maximum number of sub-questions to return (default: `5`) If the request is successful, the API returns a `decomposedQueryResponse` containing a list of `decomposedQueries`, each with: - `query`: the generated analytical sub-question - `worksheetId`: the unique ID of the data source the question targets - `worksheetName`: the display name of the corresponding data source #### Error responses | Code | Description | |------|---------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view access to the referenced metadata objects. | > ###### Note: > * This endpoint is deprecated since 10.13.0.cl. Use `getRelevantQuestions` for new integrations. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter — please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -225,6 +235,8 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -233,7 +245,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.15.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type The API returns a array of object with a type, message, and metadata. - `type`: Type of the message — text, answer, or error. - `message`: Main content of the response. - `metadata`: Additional info depending on the message type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ Version: 10.15.0.cl or later **Deprecated** — Use `sendAgentConversationMessage` instead. Send natural language messages to an existing Spotter agent conversation and returns the complete response synchronously. Requires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`. A conversation must first be created using the `createAgentConversation` API. #### Usage guidelines The request must include: - `conversation_identifier`: the unique session ID returned by `createAgentConversation`, used for context continuity and message tracking - `messages`: an array of one or more text messages to send to the agent The API returns an array of response objects, each containing: - `type`: the kind of response — `text`, `answer`, or `error` - `message`: the main content of the response - `metadata`: additional information depending on the message type (e.g., answer metadata includes analytics and visualization details) #### Error responses | Code | Description | |------|----------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks permission on the referenced conversation. | > ###### Note: > > - This endpoint is deprecated. Use `sendAgentConversationMessage` for new integrations. > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > - This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -261,6 +273,8 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -269,7 +283,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE)
+ Version: 10.13.0.cl or later **Deprecated** — Use `sendAgentConversationMessageStreaming` instead. Sends one or more natural language messages to an existing Spotter agent conversation and returns the response as a real-time Server-Sent Events stream. Requires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`. A conversation must first be created using the `createAgentConversation` API. #### Usage guidelines The request must include: - `conversation_identifier`: the unique session ID returned by `createAgentConversation`, used for context continuity and message tracking - `messages`: an array of one or more text messages to send to the agent If the request is valid, the API returns a Server-Sent Events (SSE) stream. Each line has the form `data: [{\"type\": \"...\", ...}]` — a JSON array of event objects. Event types include: - `ack`: confirms receipt of the request (`node_id`) - `conv_title`: conversation title (`title`, `conv_id`) - `notification`: status updates on operations (`group_id`, `metadata`, `code` — e.g. `TOOL_CALL_NOTIFICATION`, `nls_start`, `FINAL_RESPONSE_NOTIFICATION`) - `text-chunk`: incremental content chunks (`id`, `group_id`, `metadata` with `format` and `type` such as `thinking` or `text`, `content`) - `text`: full text block with same structure as `text-chunk` - `answer`: structured answer with metadata (`id`, `group_id`, `metadata` with `sage_query`, `session_id`, `title`, etc., `title`) - `error`: if a failure occurs #### Error responses | Code | Description | |------|----------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks permission on the referenced conversation. | > ###### Note: > > - This endpoint is deprecated. Use `sendAgentConversationMessageStreaming` for new integrations. > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > - This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > - The streaming protocol uses Server-Sent Events (SSE).
### Parameters
@@ -296,6 +310,8 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -304,7 +320,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ Version: 10.4.0.cl or later Sends a follow-up message to an existing conversation within the context of a data model. Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. A conversation must first be created using the `createConversation` API. #### Usage guidelines The request must include: - `conversation_identifier`: the unique session ID returned by `createConversation` - `metadata_identifier`: the unique ID of the data source used for the conversation - `message`: a natural language string with the follow-up question If the request is successful, the API returns an array of response messages, each containing: - `session_identifier`: the unique ID of the generated response - `generation_number`: the generation number of the response - `message_type`: the type of the response (e.g., `TSAnswer`) - `visualization_type`: the generated visualization type (`Chart`, `Table`, or `Undefined`) - `tokens` / `display_tokens`: the search tokens and user-friendly display tokens for the response #### Error responses | Code | Description | |------|-----------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. | > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -332,6 +348,8 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -340,7 +358,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.
+ Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. Requires `CAN_USE_SPOTTER` privilege, either edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, and a bearer token corresponding to the org where the data model exists. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. #### Instructions scope - **GLOBAL**: instructions that apply to all users querying this data model If the request is successful, the API returns: - `success`: a boolean indicating whether the operation completed successfully #### Error responses | Code | Description | |------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege, lacks edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, or the bearer token does not correspond to the org where the data model exists. | > ###### Note: > > - To use this API, the user needs either edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, and must use the bearer token corresponding to the org where the data model exists. > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > - Available from version 10.15.0.cl and later. > - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > - Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.
### Parameters
@@ -367,6 +385,8 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -375,7 +395,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ Version: 10.4.0.cl or later Processes a natural language query against a specified data model and returns a single AI-generated answer without requiring a conversation session. Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. #### Usage guidelines The request must include: - `query`: a natural language question (e.g., \"What were total sales last quarter?\") - `metadata_identifier`: the unique ID of the data source to query against If the request is successful, the API returns a response message containing: - `session_identifier`: the unique ID of the generated response - `generation_number`: the generation number of the response - `message_type`: the type of the response (e.g., `TSAnswer`) - `visualization_type`: the generated visualization type (`Chart`, `Table`, or `Undefined`) - `tokens` / `display_tokens`: the search tokens and user-friendly display tokens for the response #### Error responses | Code | Description | |------|-----------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. | > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -402,5 +422,7 @@ All URIs are relative to *CLUSTER_URL*
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
diff --git a/sdks/java/docs/ChannelHistoryEventInfo.md b/sdks/java/docs/ChannelHistoryEventInfo.md
new file mode 100644
index 000000000..fa27d9263
--- /dev/null
+++ b/sdks/java/docs/ChannelHistoryEventInfo.md
@@ -0,0 +1,29 @@
+
+
+# ChannelHistoryEventInfo
+
+Event metadata for the triggering event associated with a job.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | Type of the event. | |
+|**id** | **String** | Unique ID of the event. | |
+|**name** | **String** | Name of the event. | [optional] |
+|**runId** | **String** | Unique run ID for this event execution. | [optional] |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/ChannelHistoryEventInput.md b/sdks/java/docs/ChannelHistoryEventInput.md
new file mode 100644
index 000000000..3d7044a0f
--- /dev/null
+++ b/sdks/java/docs/ChannelHistoryEventInput.md
@@ -0,0 +1,27 @@
+
+
+# ChannelHistoryEventInput
+
+Event specification for channel history search.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | Type of the event. | |
+|**identifier** | **String** | Unique ID or name of the event. | [optional] |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/ChannelHistoryJob.md b/sdks/java/docs/ChannelHistoryJob.md
new file mode 100644
index 000000000..94497bb59
--- /dev/null
+++ b/sdks/java/docs/ChannelHistoryJob.md
@@ -0,0 +1,35 @@
+
+
+# ChannelHistoryJob
+
+A single job execution record for a channel.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique identifier for this job. | |
+|**status** | [**StatusEnum**](#StatusEnum) | Delivery status of this job. | |
+|**creationTimeInMillis** | **Float** | Timestamp when this job was created (epoch milliseconds). | |
+|**event** | [**ChannelHistoryEventInfo**](ChannelHistoryEventInfo.md) | | [optional] |
+|**recipients** | [**List<JobRecipient>**](JobRecipient.md) | The users, groups or external recipients for this job. | [optional] |
+|**detail** | **String** | Additional delivery details such as HTTP response code or error message. | [optional] |
+|**tryCount** | **Integer** | Number of attempts made. 1 indicates first attempt. | [optional] |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| PENDING | "PENDING" |
+| RETRY | "RETRY" |
+| SUCCESS | "SUCCESS" |
+| FAILED | "FAILED" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/ChannelValidationAwsS3Info.md b/sdks/java/docs/ChannelValidationAwsS3Info.md
new file mode 100644
index 000000000..602a23de9
--- /dev/null
+++ b/sdks/java/docs/ChannelValidationAwsS3Info.md
@@ -0,0 +1,20 @@
+
+
+# ChannelValidationAwsS3Info
+
+AWS S3 storage information returned from a validation step.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**bucketName** | **String** | Name of the S3 bucket. | [optional] |
+|**fileName** | **String** | Name of the uploaded file. | [optional] |
+|**objectKey** | **String** | Key of the object in S3 storage. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/ChannelValidationDetail.md b/sdks/java/docs/ChannelValidationDetail.md
new file mode 100644
index 000000000..e04917f0e
--- /dev/null
+++ b/sdks/java/docs/ChannelValidationDetail.md
@@ -0,0 +1,40 @@
+
+
+# ChannelValidationDetail
+
+Validation detail result for a sub-step.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**validationStep** | [**ValidationStepEnum**](#ValidationStepEnum) | The validation step that was performed. | |
+|**status** | [**StatusEnum**](#StatusEnum) | Status of this validation step. | |
+|**httpStatus** | **Integer** | HTTP status code returned by the channel (if applicable). | [optional] |
+|**errorMessage** | **String** | Error message from the channel or validation process. | [optional] |
+|**awsS3Info** | [**ChannelValidationAwsS3Info**](ChannelValidationAwsS3Info.md) | | [optional] |
+
+
+
+## Enum: ValidationStepEnum
+
+| Name | Value |
+|---- | -----|
+| HTTP_CONNECTION_CHECK | "HTTP_CONNECTION_CHECK" |
+| STORAGE_FILE_UPLOAD_CHECK | "STORAGE_FILE_UPLOAD_CHECK" |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| SUCCESS | "SUCCESS" |
+| FAILED | "FAILED" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/Collection.md b/sdks/java/docs/Collection.md
new file mode 100644
index 000000000..f08e52742
--- /dev/null
+++ b/sdks/java/docs/Collection.md
@@ -0,0 +1,26 @@
+
+
+# Collection
+
+Response object for a collection.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique identifier of the collection. | |
+|**name** | **String** | Name of the collection. | |
+|**description** | **String** | Description of the collection. | [optional] |
+|**metadata** | [**List<CollectionMetadataItem>**](CollectionMetadataItem.md) | Metadata objects in the collection. | [optional] |
+|**createdAt** | **String** | Creation timestamp in milliseconds. | [optional] |
+|**updatedAt** | **String** | Last updated timestamp in milliseconds. | [optional] |
+|**authorName** | **String** | Name of the author who created the collection. | [optional] |
+|**authorId** | **String** | Unique identifier of the author. | [optional] |
+|**org** | [**CollectionEntityIdentifier**](CollectionEntityIdentifier.md) | | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/CollectionDeleteResponse.md b/sdks/java/docs/CollectionDeleteResponse.md
new file mode 100644
index 000000000..1bd5cdba5
--- /dev/null
+++ b/sdks/java/docs/CollectionDeleteResponse.md
@@ -0,0 +1,19 @@
+
+
+# CollectionDeleteResponse
+
+Response object for delete collection operation.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**metadataDeleted** | [**List<CollectionDeleteTypeIdentifiers>**](CollectionDeleteTypeIdentifiers.md) | List of metadata objects that were successfully deleted. | [optional] |
+|**metadataSkipped** | [**List<CollectionDeleteTypeIdentifiers>**](CollectionDeleteTypeIdentifiers.md) | List of metadata objects that were skipped during deletion. Objects may be skipped due to lack of permissions, dependencies, or other constraints. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/CollectionDeleteTypeIdentifiers.md b/sdks/java/docs/CollectionDeleteTypeIdentifiers.md
new file mode 100644
index 000000000..f7a9e81d9
--- /dev/null
+++ b/sdks/java/docs/CollectionDeleteTypeIdentifiers.md
@@ -0,0 +1,19 @@
+
+
+# CollectionDeleteTypeIdentifiers
+
+Group of metadata objects identified by type.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | **String** | Type of the metadata object (e.g., Collection, Worksheet, Table). | [optional] |
+|**identifiers** | [**List<GenericInfo>**](GenericInfo.md) | List of metadata identifiers belonging to the given type. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/CollectionEntityIdentifier.md b/sdks/java/docs/CollectionEntityIdentifier.md
new file mode 100644
index 000000000..5c1355e61
--- /dev/null
+++ b/sdks/java/docs/CollectionEntityIdentifier.md
@@ -0,0 +1,19 @@
+
+
+# CollectionEntityIdentifier
+
+Entity identifier with name.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**identifier** | **String** | Unique identifier of the entity. | [optional] |
+|**name** | **String** | Name of the entity. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/CollectionMetadataInput.md b/sdks/java/docs/CollectionMetadataInput.md
new file mode 100644
index 000000000..a8333de04
--- /dev/null
+++ b/sdks/java/docs/CollectionMetadataInput.md
@@ -0,0 +1,30 @@
+
+
+# CollectionMetadataInput
+
+Input type for metadata to be added to a collection.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | Type of metadata object. | |
+|**identifiers** | **List<String>** | List of unique IDs or names of metadata objects. | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD | "LIVEBOARD" |
+| ANSWER | "ANSWER" |
+| LOGICAL_TABLE | "LOGICAL_TABLE" |
+| COLLECTION | "COLLECTION" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/CollectionMetadataItem.md b/sdks/java/docs/CollectionMetadataItem.md
new file mode 100644
index 000000000..d083e1459
--- /dev/null
+++ b/sdks/java/docs/CollectionMetadataItem.md
@@ -0,0 +1,19 @@
+
+
+# CollectionMetadataItem
+
+Metadata item in a collection response.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | **String** | Type of the metadata object. | [optional] |
+|**identifiers** | [**List<CollectionEntityIdentifier>**](CollectionEntityIdentifier.md) | List of identifiers for this metadata type. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/CollectionSearchResponse.md b/sdks/java/docs/CollectionSearchResponse.md
new file mode 100644
index 000000000..a07eabba3
--- /dev/null
+++ b/sdks/java/docs/CollectionSearchResponse.md
@@ -0,0 +1,22 @@
+
+
+# CollectionSearchResponse
+
+Response object for search collections operation.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**collections** | [**List<Collection>**](Collection.md) | List of collections matching the search criteria. | |
+|**recordOffset** | **Integer** | The starting record number from where the records are included. | [optional] |
+|**recordSize** | **Integer** | The number of records returned. | [optional] |
+|**isLastBatch** | **Boolean** | Indicates if this is the last batch of results. | [optional] |
+|**count** | **Integer** | Total count of records returned. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/CollectionsApi.md b/sdks/java/docs/CollectionsApi.md
new file mode 100644
index 000000000..07c6619d1
--- /dev/null
+++ b/sdks/java/docs/CollectionsApi.md
@@ -0,0 +1,159 @@
+# CollectionsApi
+
+All URIs are relative to *CLUSTER_URL*
+
+| Method | HTTP request |
+|------------- | ------------- |
+| [**createCollection**](CollectionsApi.md#createCollection) | **POST** /api/rest/2.0/collections/create |
+| [**deleteCollection**](CollectionsApi.md#deleteCollection) | **POST** /api/rest/2.0/collections/delete |
+| [**searchCollections**](CollectionsApi.md#searchCollections) | **POST** /api/rest/2.0/collections/search |
+| [**updateCollection**](CollectionsApi.md#updateCollection) | **POST** /api/rest/2.0/collections/{collection_identifier}/update |
+
+
+
+# **createCollection**
+> Collection createCollection(createCollectionRequest)
+
+
+
+ Version: 26.4.0.cl or later Creates a new collection in ThoughtSpot. Collections allow you to organize and group related metadata objects such as Liveboards, Answers, worksheets, and other data objects. You can also create nested collections (sub-collections) to build a hierarchical structure. #### Supported operations The API endpoint lets you perform the following operations: * Create a new collection * Add metadata objects (Liveboards, Answers, Logical Tables) to the collection * Create nested collections by adding sub-collections
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **createCollectionRequest** | [**CreateCollectionRequest**](CreateCollectionRequest.md)
+
+### Return type
+
+[**Collection**](Collection.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Collection created successfully | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
+
+# **deleteCollection**
+> CollectionDeleteResponse deleteCollection(deleteCollectionRequest)
+
+
+
+ Version: 26.4.0.cl or later Deletes one or more collections from ThoughtSpot. #### Delete options * **delete_children**: When set to `true`, deletes the child objects (metadata items) within the collection that the user has access to. Objects that the user does not have permission to delete will be skipped. * **dry_run**: When set to `true`, performs a preview of the deletion operation without actually deleting anything. The response shows what would be deleted, allowing you to review before committing the deletion. #### Response The response includes: * **metadata_deleted**: List of metadata objects that were successfully deleted * **metadata_skipped**: List of metadata objects that were skipped due to lack of permissions or other constraints
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **deleteCollectionRequest** | [**DeleteCollectionRequest**](DeleteCollectionRequest.md)
+
+### Return type
+
+[**CollectionDeleteResponse**](CollectionDeleteResponse.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Collections deleted successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **404** | Resource not found. | - |
+| **500** | Unexpected error | - |
+
+
+# **searchCollections**
+> CollectionSearchResponse searchCollections(searchCollectionsRequest)
+
+
+
+ Version: 26.4.0.cl or later Gets a list of collections available in ThoughtSpot. To get details of a specific collection, specify the collection GUID or name. You can also filter the API response based on the collection name pattern, author, and other criteria. #### Search options * **name_pattern**: Use '%' as a wildcard character to match collection names * **collection_identifiers**: Search for specific collections by their GUIDs or names * **include_metadata**: When set to `true`, includes the metadata objects within each collection in the response **NOTE**: If the API returns an empty list, consider increasing the value of the `record_size` parameter. To search across all available collections, set `record_size` to `-1`.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **searchCollectionsRequest** | [**SearchCollectionsRequest**](SearchCollectionsRequest.md)
+
+### Return type
+
+[**CollectionSearchResponse**](CollectionSearchResponse.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successfully retrieved list of collections | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
+
+# **updateCollection**
+> updateCollection(collectionIdentifier, updateCollectionRequest)
+
+
+
+ Version: 26.4.0.cl or later Updates an existing collection in ThoughtSpot. #### Supported operations This API endpoint lets you perform the following operations: * Update collection name and description * Change visibility settings * Add metadata objects to the collection (operation: ADD) * Remove metadata objects from the collection (operation: REMOVE) * Replace all metadata objects in the collection (operation: REPLACE) #### Operation types * **ADD**: Adds the specified metadata objects to the existing collection without removing current items * **REMOVE**: Removes only the specified metadata objects from the collection * **REPLACE**: Replaces all existing metadata objects with the specified items (default behavior)
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **collectionIdentifier** | **String**
+| **updateCollectionRequest** | [**UpdateCollectionRequest**](UpdateCollectionRequest.md)
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **204** | Collection updated successfully. No content returned. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **404** | Resource not found. | - |
+| **500** | Unexpected error | - |
+
diff --git a/sdks/java/docs/CommunicationChannelValidateResponse.md b/sdks/java/docs/CommunicationChannelValidateResponse.md
new file mode 100644
index 000000000..aff309088
--- /dev/null
+++ b/sdks/java/docs/CommunicationChannelValidateResponse.md
@@ -0,0 +1,50 @@
+
+
+# CommunicationChannelValidateResponse
+
+Response containing validation results for communication channel configuration.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**channelType** | [**ChannelTypeEnum**](#ChannelTypeEnum) | Type of communication channel that was validated. | |
+|**channelId** | **String** | ID of the communication channel (e.g., webhook_id). | |
+|**channelName** | **String** | Name of the communication channel (e.g., webhook name). | [optional] |
+|**eventType** | [**EventTypeEnum**](#EventTypeEnum) | Event type that was validated. | |
+|**jobId** | **String** | Unique Job Id of the validation. | |
+|**resultCode** | [**ResultCodeEnum**](#ResultCodeEnum) | Overall result of the validation. | |
+|**details** | [**List<ChannelValidationDetail>**](ChannelValidationDetail.md) | Detailed results of various validation sub-steps. | [optional] |
+
+
+
+## Enum: ChannelTypeEnum
+
+| Name | Value |
+|---- | -----|
+| WEBHOOK | "WEBHOOK" |
+
+
+
+## Enum: EventTypeEnum
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+
+## Enum: ResultCodeEnum
+
+| Name | Value |
+|---- | -----|
+| SUCCESS | "SUCCESS" |
+| FAILED | "FAILED" |
+| PARTIAL_SUCCESS | "PARTIAL_SUCCESS" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/ConnectionsApi.md b/sdks/java/docs/ConnectionsApi.md
index 59bda4d50..9111efd4e 100644
--- a/sdks/java/docs/ConnectionsApi.md
+++ b/sdks/java/docs/ConnectionsApi.md
@@ -21,7 +21,7 @@ All URIs are relative to *CLUSTER_URL*
- Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. #### Create a connection with tables To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`.
+ Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"authenticationType\": \"SERVICE_ACCOUNT\", \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. **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. #### Create a connection with tables If [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. To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"authenticationType\": \"SERVICE_ACCOUNT\", \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`. **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.
### Parameters
diff --git a/sdks/java/docs/CreateCollectionRequest.md b/sdks/java/docs/CreateCollectionRequest.md
new file mode 100644
index 000000000..452f83352
--- /dev/null
+++ b/sdks/java/docs/CreateCollectionRequest.md
@@ -0,0 +1,19 @@
+
+
+# CreateCollectionRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | Name of the collection. | |
+|**description** | **String** | Description of the collection. | [optional] |
+|**metadata** | [**List<CollectionMetadataInput>**](CollectionMetadataInput.md) | Metadata objects to add to the collection. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/CreateWebhookConfigurationRequest.md b/sdks/java/docs/CreateWebhookConfigurationRequest.md
index 565651240..41e7327ce 100644
--- a/sdks/java/docs/CreateWebhookConfigurationRequest.md
+++ b/sdks/java/docs/CreateWebhookConfigurationRequest.md
@@ -15,6 +15,7 @@
|**authentication** | [**WebhookAuthenticationInput**](WebhookAuthenticationInput.md) | Authorization configuration for the webhook. | [optional] |
|**signatureVerification** | [**WebhookSignatureVerificationInput**](WebhookSignatureVerificationInput.md) | Configuration for webhook signature verification. | [optional] |
|**storageDestination** | [**StorageDestinationInput**](StorageDestinationInput.md) | Configuration for storage destination. Example: {\"storage_type\": \"AWS_S3\", \"storage_config\": {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}} Version: 26.3.0.cl or later | [optional] |
+|**additionalHeaders** | [**List<WebhookKeyValuePairInput>**](WebhookKeyValuePairInput.md) | Additional headers as an array of key-value pairs. Example: [{\"key\": \"X-Custom-Header\", \"value\": \"custom_value\"}] Version: 26.4.0.cl or later | [optional] |
diff --git a/sdks/java/docs/DeleteCollectionRequest.md b/sdks/java/docs/DeleteCollectionRequest.md
new file mode 100644
index 000000000..98dbcd5f8
--- /dev/null
+++ b/sdks/java/docs/DeleteCollectionRequest.md
@@ -0,0 +1,19 @@
+
+
+# DeleteCollectionRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**collectionIdentifiers** | **List<String>** | Unique GUIDs of collections to delete. Note: Collection names cannot be used as identifiers since duplicate names are allowed. | |
+|**deleteChildren** | **Boolean** | Flag to delete child objects of the collection that the user has access to. | [optional] |
+|**dryRun** | **Boolean** | Preview deletion without actually deleting. When set to true, returns what would be deleted without performing the actual deletion. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/DeleteVariablesRequest.md b/sdks/java/docs/DeleteVariablesRequest.md
new file mode 100644
index 000000000..2db48ede4
--- /dev/null
+++ b/sdks/java/docs/DeleteVariablesRequest.md
@@ -0,0 +1,17 @@
+
+
+# DeleteVariablesRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**identifiers** | **List<String>** | Unique id(s) or name(s) of the variable(s) to delete | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/JobRecipient.md b/sdks/java/docs/JobRecipient.md
new file mode 100644
index 000000000..0528c7af9
--- /dev/null
+++ b/sdks/java/docs/JobRecipient.md
@@ -0,0 +1,30 @@
+
+
+# JobRecipient
+
+A recipient (user, group, or external) for a job execution.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | Type of the recipient. | |
+|**id** | **String** | Unique ID of the recipient. | [optional] |
+|**name** | **String** | Name of the recipient. | [optional] |
+|**email** | **String** | Email of the recipient. | [optional] |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| USER | "USER" |
+| EXTERNAL | "EXTERNAL" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/JobsApi.md b/sdks/java/docs/JobsApi.md
new file mode 100644
index 000000000..d4655ed7a
--- /dev/null
+++ b/sdks/java/docs/JobsApi.md
@@ -0,0 +1,45 @@
+# JobsApi
+
+All URIs are relative to *CLUSTER_URL*
+
+| Method | HTTP request |
+|------------- | ------------- |
+| [**searchChannelHistory**](JobsApi.md#searchChannelHistory) | **POST** /api/rest/2.0/jobs/history/communication-channels/search |
+
+
+
+# **searchChannelHistory**
+> SearchChannelHistoryResponse searchChannelHistory(searchChannelHistoryRequest)
+
+
+
+ Version: 26.4.0.cl or later Searches delivery history for communication channels such as webhooks. Returns channel-level delivery status for each job execution record. Use this to monitor channel health and delivery success rates across events. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action. **NOTE**: When `channel_type` is `WEBHOOK`, the following constraints apply: - `job_ids`, `channel_identifiers`, and `events` each accept at most one element. - When `job_ids` is provided, it is used as the sole lookup key and other filter fields are ignored. - When `job_ids` is not provided, `channel_identifiers` and `events` are both required. Each must contain exactly one element, and the event object must include the `identifier` field. - Records older than the configured retention period are not returned.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **searchChannelHistoryRequest** | [**SearchChannelHistoryRequest**](SearchChannelHistoryRequest.md)
+
+### Return type
+
+[**SearchChannelHistoryResponse**](SearchChannelHistoryResponse.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Channel status logs retrieved successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
diff --git a/sdks/java/docs/MetadataApi.md b/sdks/java/docs/MetadataApi.md
index 1b147bf2f..4b126031e 100644
--- a/sdks/java/docs/MetadataApi.md
+++ b/sdks/java/docs/MetadataApi.md
@@ -15,6 +15,7 @@ All URIs are relative to *CLUSTER_URL*
| [**importMetadataTML**](MetadataApi.md#importMetadataTML) | **POST** /api/rest/2.0/metadata/tml/import |
| [**importMetadataTMLAsync**](MetadataApi.md#importMetadataTMLAsync) | **POST** /api/rest/2.0/metadata/tml/async/import |
| [**parameterizeMetadata**](MetadataApi.md#parameterizeMetadata) | **POST** /api/rest/2.0/metadata/parameterize |
+| [**parameterizeMetadataFields**](MetadataApi.md#parameterizeMetadataFields) | **POST** /api/rest/2.0/metadata/parameterize-fields |
| [**searchMetadata**](MetadataApi.md#searchMetadata) | **POST** /api/rest/2.0/metadata/search |
| [**unparameterizeMetadata**](MetadataApi.md#unparameterizeMetadata) | **POST** /api/rest/2.0/metadata/unparameterize |
| [**updateMetadataHeader**](MetadataApi.md#updateMetadataHeader) | **POST** /api/rest/2.0/metadata/headers/update |
@@ -388,7 +389,7 @@ null (empty response body)
- Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user
+ Parameterize fields in metadata objects. Version: 10.9.0.cl or later **Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/metadata/parameterize-fields](/api/rest/2.0/metadata/parameterize-fields) instead. Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user
### Parameters
@@ -418,6 +419,42 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **parameterizeMetadataFields**
+> parameterizeMetadataFields(parameterizeMetadataFieldsRequest)
+
+
+
+ Parameterize multiple fields of metadata objects. For example [schemaName, databaseName] for LOGICAL_TABLE. Version: 26.4.0.cl or later Allows parameterizing multiple fields of metadata objects in ThoughtSpot. For example, you can parameterize [schemaName, databaseName] for LOGICAL_TABLE. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table, the field type must be `ATTRIBUTE` and field names can include: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_names specifies the exact properties of the Connection or Connection Config that need to be parameterized. For Connection Config, supported field names include: * impersonate_user You can parameterize multiple fields at once by providing an array of field names.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **parameterizeMetadataFieldsRequest** | [**ParameterizeMetadataFieldsRequest**](ParameterizeMetadataFieldsRequest.md)
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **204** | Parameterize successful. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **searchMetadata**
> List<MetadataSearchResponse> searchMetadata(searchMetadataRequest)
diff --git a/sdks/java/docs/ParameterizeMetadataFieldsRequest.md b/sdks/java/docs/ParameterizeMetadataFieldsRequest.md
new file mode 100644
index 000000000..58929cd14
--- /dev/null
+++ b/sdks/java/docs/ParameterizeMetadataFieldsRequest.md
@@ -0,0 +1,40 @@
+
+
+# ParameterizeMetadataFieldsRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**metadataType** | [**MetadataTypeEnum**](#MetadataTypeEnum) | Type of metadata object to parameterize. | [optional] |
+|**metadataIdentifier** | **String** | Unique ID or name of the metadata object to parameterize. | |
+|**fieldType** | [**FieldTypeEnum**](#FieldTypeEnum) | Type of field in the metadata to parameterize. | |
+|**fieldNames** | **List<String>** | JSON array of field names to parameterize. Example: [schemaName, databaseName, tableName] | |
+|**variableIdentifier** | **String** | Unique ID or name of the variable to use for parameterization of these fields. | |
+
+
+
+## Enum: MetadataTypeEnum
+
+| Name | Value |
+|---- | -----|
+| LOGICAL_TABLE | "LOGICAL_TABLE" |
+| CONNECTION | "CONNECTION" |
+| CONNECTION_CONFIG | "CONNECTION_CONFIG" |
+
+
+
+## Enum: FieldTypeEnum
+
+| Name | Value |
+|---- | -----|
+| ATTRIBUTE | "ATTRIBUTE" |
+| CONNECTION_PROPERTY | "CONNECTION_PROPERTY" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/PutVariableValuesRequest.md b/sdks/java/docs/PutVariableValuesRequest.md
new file mode 100644
index 000000000..54fe19689
--- /dev/null
+++ b/sdks/java/docs/PutVariableValuesRequest.md
@@ -0,0 +1,29 @@
+
+
+# PutVariableValuesRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**operation** | [**OperationEnum**](#OperationEnum) | Operation to perform | [optional] |
+|**variableAssignment** | [**List<VariablePutAssignmentInput>**](VariablePutAssignmentInput.md) | Variable assignments | |
+
+
+
+## Enum: OperationEnum
+
+| Name | Value |
+|---- | -----|
+| ADD | "ADD" |
+| REMOVE | "REMOVE" |
+| REPLACE | "REPLACE" |
+| RESET | "RESET" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/SearchChannelHistoryRequest.md b/sdks/java/docs/SearchChannelHistoryRequest.md
new file mode 100644
index 000000000..b29800ca9
--- /dev/null
+++ b/sdks/java/docs/SearchChannelHistoryRequest.md
@@ -0,0 +1,41 @@
+
+
+# SearchChannelHistoryRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**channelType** | [**ChannelTypeEnum**](#ChannelTypeEnum) | Type of communication channel to search history for. | |
+|**jobIds** | **List<String>** | List of job execution record IDs to retrieve. | [optional] |
+|**channelIdentifiers** | **List<String>** | List of channel IDs or names to filter by. | [optional] |
+|**channelStatus** | [**ChannelStatusEnum**](#ChannelStatusEnum) | Filter by channel delivery status. | [optional] |
+|**events** | [**List<ChannelHistoryEventInput>**](ChannelHistoryEventInput.md) | Filter by events that triggered the channel. | [optional] |
+|**startEpochTimeInMillis** | **Float** | Filter records created on or after this time (epoch milliseconds). | [optional] |
+
+
+
+## Enum: ChannelTypeEnum
+
+| Name | Value |
+|---- | -----|
+| WEBHOOK | "WEBHOOK" |
+
+
+
+## Enum: ChannelStatusEnum
+
+| Name | Value |
+|---- | -----|
+| PENDING | "PENDING" |
+| RETRY | "RETRY" |
+| SUCCESS | "SUCCESS" |
+| FAILED | "FAILED" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/SearchChannelHistoryResponse.md b/sdks/java/docs/SearchChannelHistoryResponse.md
new file mode 100644
index 000000000..0de44f5d7
--- /dev/null
+++ b/sdks/java/docs/SearchChannelHistoryResponse.md
@@ -0,0 +1,18 @@
+
+
+# SearchChannelHistoryResponse
+
+Response wrapper for channel delivery history.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**jobs** | [**List<ChannelHistoryJob>**](ChannelHistoryJob.md) | List of job execution records. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/SearchCollectionsRequest.md b/sdks/java/docs/SearchCollectionsRequest.md
new file mode 100644
index 000000000..f9e5f5ead
--- /dev/null
+++ b/sdks/java/docs/SearchCollectionsRequest.md
@@ -0,0 +1,23 @@
+
+
+# SearchCollectionsRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**namePattern** | **String** | A pattern to match case-insensitive name of the Collection object. Use '%' for wildcard match. | [optional] |
+|**recordOffset** | **Integer** | The starting record number from where the records should be included. | [optional] |
+|**recordSize** | **Integer** | The number of records that should be included. -1 implies no pagination. | [optional] |
+|**collectionIdentifiers** | **List<String>** | Unique GUIDs of collections to search. Note: Collection names cannot be used as identifiers since duplicate names are allowed. | [optional] |
+|**createdByUserIdentifiers** | **List<String>** | Filter collections by author. Provide unique IDs or names of users who created the collections. | [optional] |
+|**includeMetadata** | **Boolean** | Include collection metadata items in the response. | [optional] |
+|**sortOptions** | [**SortOptions**](SortOptions.md) | Sort options. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/SystemApi.md b/sdks/java/docs/SystemApi.md
index 964293200..ab77934a8 100644
--- a/sdks/java/docs/SystemApi.md
+++ b/sdks/java/docs/SystemApi.md
@@ -12,6 +12,7 @@ All URIs are relative to *CLUSTER_URL*
| [**searchCommunicationChannelPreferences**](SystemApi.md#searchCommunicationChannelPreferences) | **POST** /api/rest/2.0/system/preferences/communication-channels/search |
| [**searchSecuritySettings**](SystemApi.md#searchSecuritySettings) | **POST** /api/rest/2.0/system/security-settings/search |
| [**updateSystemConfig**](SystemApi.md#updateSystemConfig) | **POST** /api/rest/2.0/system/config-update |
+| [**validateCommunicationChannel**](SystemApi.md#validateCommunicationChannel) | **POST** /api/rest/2.0/system/communication-channels/validate |
@@ -293,3 +294,39 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **validateCommunicationChannel**
+> CommunicationChannelValidateResponse validateCommunicationChannel(validateCommunicationChannelRequest)
+
+
+
+ Version: 26.4.0.cl or later Validates a communication channel configuration to ensure it is properly set up and can receive events. - Use `channel_type` to specify the type of communication channel to validate (e.g., WEBHOOK). - Use `channel_identifier` to provide the unique identifier or name for the communication channel. - Use `event_type` to specify the event type to validate for this channel. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. For webhook channels, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **validateCommunicationChannelRequest** | [**ValidateCommunicationChannelRequest**](ValidateCommunicationChannelRequest.md)
+
+### Return type
+
+[**CommunicationChannelValidateResponse**](CommunicationChannelValidateResponse.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | communication channel configuration validated successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
diff --git a/sdks/java/docs/TemplatePropertiesInputCreate.md b/sdks/java/docs/TemplatePropertiesInputCreate.md
index 09248bad8..a55b11333 100644
--- a/sdks/java/docs/TemplatePropertiesInputCreate.md
+++ b/sdks/java/docs/TemplatePropertiesInputCreate.md
@@ -35,6 +35,7 @@ Email customization configuration properties
|**companyWebsiteUrl** | **String** | Company website URL (HTTP/HTTPS only) | [optional] |
|**contactSupportUrl** | **String** | Contact support url (HTTP/HTTPS only). Version: 26.2.0.cl or later | [optional] |
|**hideContactSupportUrl** | **Boolean** | Whether to hide contact support url. Version: 26.2.0.cl or later | [optional] |
+|**hideLogoUrl** | **Boolean** | Whether to hide logo Version: 26.4.0.cl or later | [optional] |
## Implemented Interfaces
diff --git a/sdks/java/docs/ThoughtSpotRestApi.md b/sdks/java/docs/ThoughtSpotRestApi.md
index 39e924f12..6b52f2e0f 100644
--- a/sdks/java/docs/ThoughtSpotRestApi.md
+++ b/sdks/java/docs/ThoughtSpotRestApi.md
@@ -16,6 +16,7 @@ All URIs are relative to *CLUSTER_URL*
| [**copyObject**](ThoughtSpotRestApi.md#copyObject) | **POST** /api/rest/2.0/metadata/copyobject |
| [**createAgentConversation**](ThoughtSpotRestApi.md#createAgentConversation) | **POST** /api/rest/2.0/ai/agent/conversation/create |
| [**createCalendar**](ThoughtSpotRestApi.md#createCalendar) | **POST** /api/rest/2.0/calendars/create |
+| [**createCollection**](ThoughtSpotRestApi.md#createCollection) | **POST** /api/rest/2.0/collections/create |
| [**createConfig**](ThoughtSpotRestApi.md#createConfig) | **POST** /api/rest/2.0/vcs/git/config/create |
| [**createConnection**](ThoughtSpotRestApi.md#createConnection) | **POST** /api/rest/2.0/connection/create |
| [**createConnectionConfiguration**](ThoughtSpotRestApi.md#createConnectionConfiguration) | **POST** /api/rest/2.0/connection-configurations/create |
@@ -36,6 +37,7 @@ All URIs are relative to *CLUSTER_URL*
| [**dbtSearch**](ThoughtSpotRestApi.md#dbtSearch) | **POST** /api/rest/2.0/dbt/search |
| [**deactivateUser**](ThoughtSpotRestApi.md#deactivateUser) | **POST** /api/rest/2.0/users/deactivate |
| [**deleteCalendar**](ThoughtSpotRestApi.md#deleteCalendar) | **POST** /api/rest/2.0/calendars/{calendar_identifier}/delete |
+| [**deleteCollection**](ThoughtSpotRestApi.md#deleteCollection) | **POST** /api/rest/2.0/collections/delete |
| [**deleteConfig**](ThoughtSpotRestApi.md#deleteConfig) | **POST** /api/rest/2.0/vcs/git/config/delete |
| [**deleteConnection**](ThoughtSpotRestApi.md#deleteConnection) | **POST** /api/rest/2.0/connection/delete |
| [**deleteConnectionConfiguration**](ThoughtSpotRestApi.md#deleteConnectionConfiguration) | **POST** /api/rest/2.0/connection-configurations/delete |
@@ -52,6 +54,7 @@ All URIs are relative to *CLUSTER_URL*
| [**deleteUser**](ThoughtSpotRestApi.md#deleteUser) | **POST** /api/rest/2.0/users/{user_identifier}/delete |
| [**deleteUserGroup**](ThoughtSpotRestApi.md#deleteUserGroup) | **POST** /api/rest/2.0/groups/{group_identifier}/delete |
| [**deleteVariable**](ThoughtSpotRestApi.md#deleteVariable) | **POST** /api/rest/2.0/template/variables/{identifier}/delete |
+| [**deleteVariables**](ThoughtSpotRestApi.md#deleteVariables) | **POST** /api/rest/2.0/template/variables/delete |
| [**deleteWebhookConfigurations**](ThoughtSpotRestApi.md#deleteWebhookConfigurations) | **POST** /api/rest/2.0/webhooks/delete |
| [**deployCommit**](ThoughtSpotRestApi.md#deployCommit) | **POST** /api/rest/2.0/vcs/git/commits/deploy |
| [**downloadConnectionMetadataChanges**](ThoughtSpotRestApi.md#downloadConnectionMetadataChanges) | **POST** /api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier} |
@@ -91,13 +94,17 @@ All URIs are relative to *CLUSTER_URL*
| [**logout**](ThoughtSpotRestApi.md#logout) | **POST** /api/rest/2.0/auth/session/logout |
| [**manageObjectPrivilege**](ThoughtSpotRestApi.md#manageObjectPrivilege) | **POST** /api/rest/2.0/security/metadata/manage-object-privilege |
| [**parameterizeMetadata**](ThoughtSpotRestApi.md#parameterizeMetadata) | **POST** /api/rest/2.0/metadata/parameterize |
+| [**parameterizeMetadataFields**](ThoughtSpotRestApi.md#parameterizeMetadataFields) | **POST** /api/rest/2.0/metadata/parameterize-fields |
| [**publishMetadata**](ThoughtSpotRestApi.md#publishMetadata) | **POST** /api/rest/2.0/security/metadata/publish |
+| [**putVariableValues**](ThoughtSpotRestApi.md#putVariableValues) | **POST** /api/rest/2.0/template/variables/{identifier}/update-values |
| [**queryGetDecomposedQuery**](ThoughtSpotRestApi.md#queryGetDecomposedQuery) | **POST** /api/rest/2.0/ai/analytical-questions |
| [**resetUserPassword**](ThoughtSpotRestApi.md#resetUserPassword) | **POST** /api/rest/2.0/users/reset-password |
| [**revertCommit**](ThoughtSpotRestApi.md#revertCommit) | **POST** /api/rest/2.0/vcs/git/commits/{commit_id}/revert |
| [**revokeRefreshTokens**](ThoughtSpotRestApi.md#revokeRefreshTokens) | **POST** /api/rest/2.0/connections/{connection_identifier}/revoke-refresh-tokens |
| [**revokeToken**](ThoughtSpotRestApi.md#revokeToken) | **POST** /api/rest/2.0/auth/token/revoke |
| [**searchCalendars**](ThoughtSpotRestApi.md#searchCalendars) | **POST** /api/rest/2.0/calendars/search |
+| [**searchChannelHistory**](ThoughtSpotRestApi.md#searchChannelHistory) | **POST** /api/rest/2.0/jobs/history/communication-channels/search |
+| [**searchCollections**](ThoughtSpotRestApi.md#searchCollections) | **POST** /api/rest/2.0/collections/search |
| [**searchCommits**](ThoughtSpotRestApi.md#searchCommits) | **POST** /api/rest/2.0/vcs/git/commits/search |
| [**searchCommunicationChannelPreferences**](ThoughtSpotRestApi.md#searchCommunicationChannelPreferences) | **POST** /api/rest/2.0/system/preferences/communication-channels/search |
| [**searchConfig**](ThoughtSpotRestApi.md#searchConfig) | **POST** /api/rest/2.0/vcs/git/config/search |
@@ -125,6 +132,7 @@ All URIs are relative to *CLUSTER_URL*
| [**unparameterizeMetadata**](ThoughtSpotRestApi.md#unparameterizeMetadata) | **POST** /api/rest/2.0/metadata/unparameterize |
| [**unpublishMetadata**](ThoughtSpotRestApi.md#unpublishMetadata) | **POST** /api/rest/2.0/security/metadata/unpublish |
| [**updateCalendar**](ThoughtSpotRestApi.md#updateCalendar) | **POST** /api/rest/2.0/calendars/{calendar_identifier}/update |
+| [**updateCollection**](ThoughtSpotRestApi.md#updateCollection) | **POST** /api/rest/2.0/collections/{collection_identifier}/update |
| [**updateColumnSecurityRules**](ThoughtSpotRestApi.md#updateColumnSecurityRules) | **POST** /api/rest/2.0/security/column/rules/update |
| [**updateConfig**](ThoughtSpotRestApi.md#updateConfig) | **POST** /api/rest/2.0/vcs/git/config/update |
| [**updateConnection**](ThoughtSpotRestApi.md#updateConnection) | **POST** /api/rest/2.0/connection/update |
@@ -145,6 +153,7 @@ All URIs are relative to *CLUSTER_URL*
| [**updateVariable**](ThoughtSpotRestApi.md#updateVariable) | **POST** /api/rest/2.0/template/variables/{identifier}/update |
| [**updateVariableValues**](ThoughtSpotRestApi.md#updateVariableValues) | **POST** /api/rest/2.0/template/variables/update-values |
| [**updateWebhookConfiguration**](ThoughtSpotRestApi.md#updateWebhookConfiguration) | **POST** /api/rest/2.0/webhooks/{webhook_identifier}/update |
+| [**validateCommunicationChannel**](ThoughtSpotRestApi.md#validateCommunicationChannel) | **POST** /api/rest/2.0/system/communication-channels/validate |
| [**validateEmailCustomization**](ThoughtSpotRestApi.md#validateEmailCustomization) | **POST** /api/rest/2.0/customization/email/validate |
| [**validateMerge**](ThoughtSpotRestApi.md#validateMerge) | **POST** /api/rest/2.0/vcs/git/branches/validate |
| [**validateToken**](ThoughtSpotRestApi.md#validateToken) | **POST** /api/rest/2.0/auth/token/validate |
@@ -517,7 +526,7 @@ null (empty response body)
- Version: 10.13.0.cl or later
+ Version: 26.2.0.cl or later Creates a new Spotter agent conversation based on the provided context and settings. The endpoint was in Beta from 26.2.0.cl through 26.4.0.cl. Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. #### Usage guidelines The request must include the `metadata_context` parameter to define the conversation context. The context type can be one of: - `DATA_SOURCE` *(available from 26.5.0.cl)*: targets a specific data source. Provide `data_source_identifier` in `data_source_context` for a single data source, or `data_source_identifiers` for multi-data-source context. The deprecated `guid` field is accepted for backwards compatibility. - `AUTO_MODE` *(available from 26.5.0.cl)*: automatically discovers and selects the most relevant datasets for the user's queries. > **Note for callers on versions 26.2.0.cl – 26.4.0.cl (Beta):** use the lowercase `data_source` enum value with the `guid` field instead of the above. Example: `{ \"type\": \"data_source\", \"data_source_context\": { \"guid\": \"<worksheet-id>\" } }`. The `conversation_settings` parameter controls which Spotter capabilities are enabled for the conversation: - `enable_contextual_change_analysis` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl - `enable_natural_language_answer_generation` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl - `enable_reasoning` (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect on versions >= 26.2.0.cl - `enable_save_chat` (default: `false`, *available from 26.5.0.cl*) — enables saving the conversation for later retrieval via conversation history If the request is successful, the response includes a unique `conversation_identifier` that must be passed to `sendAgentConversationMessage` or `sendAgentConversationMessageStreaming` to send messages within this conversation. The response also includes `conversation_id` with the same value for backwards compatibility; use `conversation_identifier` for new integrations. #### Example request ```json { \"metadata_context\": { \"type\": \"DATA_SOURCE\", \"data_source_context\": { \"data_source_identifier\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\" } }, \"conversation_settings\": {} } ``` #### Error responses | Code | Description | | ---- | --------------------------------------------------------------------------------------------------------------------------------------- | | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. | > ###### Note: > > - This endpoint was in Beta from 26.2.0.cl through 26.4.0.cl and is Generally Available from version 26.5.0.cl. > - This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -544,6 +553,8 @@ null (empty response body)
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -582,6 +593,42 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **createCollection**
+> Collection createCollection(createCollectionRequest)
+
+
+
+ Version: 26.4.0.cl or later Creates a new collection in ThoughtSpot. Collections allow you to organize and group related metadata objects such as Liveboards, Answers, worksheets, and other data objects. You can also create nested collections (sub-collections) to build a hierarchical structure. #### Supported operations The API endpoint lets you perform the following operations: * Create a new collection * Add metadata objects (Liveboards, Answers, Logical Tables) to the collection * Create nested collections by adding sub-collections
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **createCollectionRequest** | [**CreateCollectionRequest**](CreateCollectionRequest.md)
+
+### Return type
+
+[**Collection**](Collection.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Collection created successfully | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **createConfig**
> RepoConfigObject createConfig(createConfigRequest)
@@ -624,7 +671,7 @@ null (empty response body)
- Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. #### Create a connection with tables To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`.
+ Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"authenticationType\": \"SERVICE_ACCOUNT\", \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. **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. #### Create a connection with tables If [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. To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"authenticationType\": \"SERVICE_ACCOUNT\", \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`. **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.
### Parameters
@@ -696,7 +743,7 @@ null (empty response body)
- Version: 10.4.0.cl or later Creates a Conversation object to start an AI-driven conversation based on a specific data model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines This API requires the `metadata_identifier` parameter to define the context for the conversation. You can also specify the tokens to initiate the conversation as shown in this example: `\"tokens\": \"[tea],[sales],[type]\"` If the API request is successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ Version: 10.4.0.cl or later Creates a new conversation session tied to a specific data model for AI-driven natural language querying. Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. #### Usage guidelines The request must include: - `metadata_identifier`: the unique ID of the data source that provides context for the conversation Optionally, you can provide: - `tokens`: a token string to set initial context for the conversation (e.g., `\"[sales],[item type],[state]\"`) If the request is successful, ThoughtSpot returns a unique `conversation_identifier` that must be passed to `sendMessage` to continue the conversation. #### Error responses | Code | Description | |------|-------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. | > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -723,6 +770,8 @@ null (empty response body)
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -1311,6 +1360,43 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **deleteCollection**
+> CollectionDeleteResponse deleteCollection(deleteCollectionRequest)
+
+
+
+ Version: 26.4.0.cl or later Deletes one or more collections from ThoughtSpot. #### Delete options * **delete_children**: When set to `true`, deletes the child objects (metadata items) within the collection that the user has access to. Objects that the user does not have permission to delete will be skipped. * **dry_run**: When set to `true`, performs a preview of the deletion operation without actually deleting anything. The response shows what would be deleted, allowing you to review before committing the deletion. #### Response The response includes: * **metadata_deleted**: List of metadata objects that were successfully deleted * **metadata_skipped**: List of metadata objects that were skipped due to lack of permissions or other constraints
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **deleteCollectionRequest** | [**DeleteCollectionRequest**](DeleteCollectionRequest.md)
+
+### Return type
+
+[**CollectionDeleteResponse**](CollectionDeleteResponse.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Collections deleted successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **404** | Resource not found. | - |
+| **500** | Unexpected error | - |
+
# **deleteConfig**
> deleteConfig(deleteConfigRequest)
@@ -1856,7 +1942,7 @@ null (empty response body)
- Delete a variable Version: 10.14.0.cl or later Allows deleting a variable from ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint requires: * The variable identifier (ID or name) The operation will fail if: * The user lacks required permissions * The variable doesn't exist * The variable is being used by other objects
+ Delete a variable Version: 10.14.0.cl or later **Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/template/variables/delete](/api/rest/2.0/template/variables/delete) instead. Allows deleting a variable from ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint requires: * The variable identifier (ID or name) The operation will fail if: * The user lacks required permissions * The variable doesn't exist * The variable is being used by other objects
### Parameters
@@ -1886,6 +1972,42 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **deleteVariables**
+> deleteVariables(deleteVariablesRequest)
+
+
+
+ Delete variable(s) Version: 26.4.0.cl or later Allows deleting multiple variables from ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint requires: * The variable identifiers (IDs or names) The operation will fail if: * The user lacks required permissions * Any of the variables don't exist * Any of the variables are being used by other objects
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **deleteVariablesRequest** | [**DeleteVariablesRequest**](DeleteVariablesRequest.md)
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **204** | Deletion of variable(s) is successful. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **deleteWebhookConfigurations**
> WebhookDeleteResponse deleteWebhookConfigurations(deleteWebhookConfigurationsRequest)
@@ -2714,7 +2836,7 @@ No authorization required
- Version: 10.15.0.cl or later Provides relevant data source recommendations for a user-submitted natural language query. To use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response. #### Usage guidelines The request must include a `query` string via the request body. The returned results include metadata such as: - `confidence`: a float indicating the model's confidence in the relevance of each recommendation - `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source - `reasoning`: rationale provided by the LLM to explain why each data source was recommended If the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
+ Version: 10.15.0.cl or later Suggests the most relevant data sources for a given natural language query, ranked by confidence with LLM-generated reasoning. Requires `CAN_USE_SPOTTER` privilege and at least view-level access to the underlying metadata entities referenced in the response. #### Usage guidelines The request must include: - `query`: the natural language question to find relevant data sources for If the request is successful, the API returns a ranked list of suggested data sources, each containing: - `confidence`: a float score indicating the model's confidence in the relevance of the suggestion - `details`: metadata about the data source - `data_source_identifier`: the unique ID of the data source - `data_source_name`: the display name of the data source - `description`: a description of the data source - `reasoning`: LLM-generated rationale explaining why the data source was recommended #### Error responses | Code | Description | |------|--------------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the underlying metadata entities. | > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
### Parameters
@@ -2741,6 +2863,8 @@ No authorization required
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -2785,7 +2909,7 @@ No authorization required
- Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`.
+ Version: 10.15.0.cl or later Retrieves existing natural language (NL) instructions configured for a specific data model. These instructions guide the AI system in understanding data context and generating more accurate responses. Requires `CAN_USE_SPOTTER` privilege, at least view access on the data model, and a bearer token corresponding to the org where the data model exists. #### Usage guidelines The request must include: - `data_source_identifier`: the unique ID of the data model to retrieve instructions for If the request is successful, the API returns: - `nl_instructions_info`: an array of instruction objects, each containing: - `instructions`: the configured text instructions for AI processing - `scope`: the scope of the instruction — currently only `GLOBAL` is supported #### Instructions scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) #### Error responses | Code | Description | |------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege, lacks view access on the data model, or the bearer token does not correspond to the org where the data model exists. | > ###### Note: > > - To use this API, the user needs at least view access on the data model, and must use the bearer token corresponding to the org where the data model exists. > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > - Available from version 10.15.0.cl and later. > - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > - Use this API to review currently configured instructions before modifying them with `setNLInstructions`.
### Parameters
@@ -2812,6 +2936,8 @@ No authorization required
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -2856,7 +2982,7 @@ No authorization required
- Version: 10.13.0.cl or later Breaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata. To use this API, the user must have at least view-level access to the referenced metadata objects. #### Usage guidelines To accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`. You can further enhance the quality and precision of breakdown by providing additional `ai_context` such as: - `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. - `instructions`: User specific text instructions sent to AI system for processing the query. Additional optional parameters include: - `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. - `bypass_cache`: If set to true, forces fresh computation instead of returning cached results. If the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ Version: 10.13.0.cl or later Breaks down a natural language query into a series of smaller analytical sub-questions, each mapped to a relevant data source. Requires `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced metadata objects. #### Usage guidelines The request must include: - `query`: the natural language question to decompose into analytical sub-questions - `metadata_context`: at least one of the following context identifiers to guide question generation: - `conversation_identifier` — an existing conversation session ID - `answer_identifiers` — a list of Answer GUIDs - `liveboard_identifiers` — a list of Liveboard GUIDs - `data_source_identifiers` — a list of data source GUIDs Optional parameters for refining the output: - `ai_context`: additional context to improve response quality - `content` — supplementary text or CSV data as string input - `instructions` — custom text instructions for the AI system - `limit_relevant_questions`: maximum number of questions to return (default: `5`) - `bypass_cache`: if `true`, forces fresh computation instead of returning cached results If the request is successful, the API returns a list of relevant analytical questions, each containing: - `query`: the generated sub-question - `data_source_identifier`: the unique ID of the data source the question targets - `data_source_name`: the display name of the corresponding data source #### Error responses | Code | Description | |------|---------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view access to the referenced metadata objects. | > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -2883,6 +3009,8 @@ No authorization required
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -3239,7 +3367,7 @@ null (empty response body)
- Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user
+ Parameterize fields in metadata objects. Version: 10.9.0.cl or later **Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/metadata/parameterize-fields](/api/rest/2.0/metadata/parameterize-fields) instead. Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user
### Parameters
@@ -3269,6 +3397,42 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **parameterizeMetadataFields**
+> parameterizeMetadataFields(parameterizeMetadataFieldsRequest)
+
+
+
+ Parameterize multiple fields of metadata objects. For example [schemaName, databaseName] for LOGICAL_TABLE. Version: 26.4.0.cl or later Allows parameterizing multiple fields of metadata objects in ThoughtSpot. For example, you can parameterize [schemaName, databaseName] for LOGICAL_TABLE. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table, the field type must be `ATTRIBUTE` and field names can include: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_names specifies the exact properties of the Connection or Connection Config that need to be parameterized. For Connection Config, supported field names include: * impersonate_user You can parameterize multiple fields at once by providing an array of field names.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **parameterizeMetadataFieldsRequest** | [**ParameterizeMetadataFieldsRequest**](ParameterizeMetadataFieldsRequest.md)
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **204** | Parameterize successful. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **publishMetadata**
> publishMetadata(publishMetadataRequest)
@@ -3305,13 +3469,50 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **putVariableValues**
+> putVariableValues(identifier, putVariableValuesRequest)
+
+
+
+ Update values for a variable Version: 26.4.0.cl or later Allows updating values for a specific variable in ThoughtSpot. Requires ADMINISTRATION role. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint allows: * Adding new values to the variable * Replacing existing values * Deleting values from the variable * Resetting all values When updating variable values, you need to specify: * The variable identifier (ID or name) * The values to add/replace/remove * The operation to perform (ADD, REPLACE, REMOVE, RESET) Behaviour based on operation type: * ADD - Adds values to the variable if this is a list type variable, else same as replace. * REPLACE - Replaces all values of a given set of constraints with the current set of values. * REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value. * RESET - Removes all constraints for the given variable, scope is ignored
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **identifier** | **String**
+| **putVariableValuesRequest** | [**PutVariableValuesRequest**](PutVariableValuesRequest.md)
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **204** | Variable values updated successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **queryGetDecomposedQuery**
> EurekaDecomposeQueryResponse queryGetDecomposedQuery(queryGetDecomposedQueryRequest)
- Version: 10.7.0.cl or later
+ Version: 10.7.0.cl or later **Deprecated** — Use `getRelevantQuestions` instead (available from 10.13.0.cl). Breaks down a topical or goal-oriented natural language question into smaller, actionable analytical sub-questions, each mapped to a relevant data source for independent execution. Requires `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced metadata objects. #### Usage guidelines The request accepts the following parameters: - `nlsRequest`: contains the user `query` to decompose, along with optional `instructions` and `bypassCache` flag - `worksheetIds`: list of data source identifiers to scope the decomposition - `answerIds`: list of Answer GUIDs whose data guides the response - `liveboardIds`: list of Liveboard GUIDs whose data guides the response - `conversationId`: an existing conversation session ID for context continuity - `content`: supplementary text or CSV data to improve response quality - `maxDecomposedQueries`: maximum number of sub-questions to return (default: `5`) If the request is successful, the API returns a `decomposedQueryResponse` containing a list of `decomposedQueries`, each with: - `query`: the generated analytical sub-question - `worksheetId`: the unique ID of the data source the question targets - `worksheetName`: the display name of the corresponding data source #### Error responses | Code | Description | |------|---------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view access to the referenced metadata objects. | > ###### Note: > * This endpoint is deprecated since 10.13.0.cl. Use `getRelevantQuestions` for new integrations. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter — please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -3338,6 +3539,8 @@ null (empty response body)
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -3524,6 +3727,78 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **searchChannelHistory**
+> SearchChannelHistoryResponse searchChannelHistory(searchChannelHistoryRequest)
+
+
+
+ Version: 26.4.0.cl or later Searches delivery history for communication channels such as webhooks. Returns channel-level delivery status for each job execution record. Use this to monitor channel health and delivery success rates across events. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action. **NOTE**: When `channel_type` is `WEBHOOK`, the following constraints apply: - `job_ids`, `channel_identifiers`, and `events` each accept at most one element. - When `job_ids` is provided, it is used as the sole lookup key and other filter fields are ignored. - When `job_ids` is not provided, `channel_identifiers` and `events` are both required. Each must contain exactly one element, and the event object must include the `identifier` field. - Records older than the configured retention period are not returned.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **searchChannelHistoryRequest** | [**SearchChannelHistoryRequest**](SearchChannelHistoryRequest.md)
+
+### Return type
+
+[**SearchChannelHistoryResponse**](SearchChannelHistoryResponse.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Channel status logs retrieved successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
+
+# **searchCollections**
+> CollectionSearchResponse searchCollections(searchCollectionsRequest)
+
+
+
+ Version: 26.4.0.cl or later Gets a list of collections available in ThoughtSpot. To get details of a specific collection, specify the collection GUID or name. You can also filter the API response based on the collection name pattern, author, and other criteria. #### Search options * **name_pattern**: Use '%' as a wildcard character to match collection names * **collection_identifiers**: Search for specific collections by their GUIDs or names * **include_metadata**: When set to `true`, includes the metadata objects within each collection in the response **NOTE**: If the API returns an empty list, consider increasing the value of the `record_size` parameter. To search across all available collections, set `record_size` to `-1`.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **searchCollectionsRequest** | [**SearchCollectionsRequest**](SearchCollectionsRequest.md)
+
+### Return type
+
+[**CollectionSearchResponse**](CollectionSearchResponse.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successfully retrieved list of collections | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **searchCommits**
> List<CommitHistoryResponse> searchCommits(searchCommitsRequest)
@@ -4141,7 +4416,7 @@ null (empty response body)
- Version: 10.15.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type The API returns a array of object with a type, message, and metadata. - `type`: Type of the message — text, answer, or error. - `message`: Main content of the response. - `metadata`: Additional info depending on the message type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ Version: 10.15.0.cl or later **Deprecated** — Use `sendAgentConversationMessage` instead. Send natural language messages to an existing Spotter agent conversation and returns the complete response synchronously. Requires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`. A conversation must first be created using the `createAgentConversation` API. #### Usage guidelines The request must include: - `conversation_identifier`: the unique session ID returned by `createAgentConversation`, used for context continuity and message tracking - `messages`: an array of one or more text messages to send to the agent The API returns an array of response objects, each containing: - `type`: the kind of response — `text`, `answer`, or `error` - `message`: the main content of the response - `metadata`: additional information depending on the message type (e.g., answer metadata includes analytics and visualization details) #### Error responses | Code | Description | |------|----------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks permission on the referenced conversation. | > ###### Note: > > - This endpoint is deprecated. Use `sendAgentConversationMessage` for new integrations. > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > - This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -4169,6 +4444,8 @@ null (empty response body)
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -4177,7 +4454,7 @@ null (empty response body)
- Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE)
+ Version: 10.13.0.cl or later **Deprecated** — Use `sendAgentConversationMessageStreaming` instead. Sends one or more natural language messages to an existing Spotter agent conversation and returns the response as a real-time Server-Sent Events stream. Requires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`. A conversation must first be created using the `createAgentConversation` API. #### Usage guidelines The request must include: - `conversation_identifier`: the unique session ID returned by `createAgentConversation`, used for context continuity and message tracking - `messages`: an array of one or more text messages to send to the agent If the request is valid, the API returns a Server-Sent Events (SSE) stream. Each line has the form `data: [{\"type\": \"...\", ...}]` — a JSON array of event objects. Event types include: - `ack`: confirms receipt of the request (`node_id`) - `conv_title`: conversation title (`title`, `conv_id`) - `notification`: status updates on operations (`group_id`, `metadata`, `code` — e.g. `TOOL_CALL_NOTIFICATION`, `nls_start`, `FINAL_RESPONSE_NOTIFICATION`) - `text-chunk`: incremental content chunks (`id`, `group_id`, `metadata` with `format` and `type` such as `thinking` or `text`, `content`) - `text`: full text block with same structure as `text-chunk` - `answer`: structured answer with metadata (`id`, `group_id`, `metadata` with `sage_query`, `session_id`, `title`, etc., `title`) - `error`: if a failure occurs #### Error responses | Code | Description | |------|----------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks permission on the referenced conversation. | > ###### Note: > > - This endpoint is deprecated. Use `sendAgentConversationMessageStreaming` for new integrations. > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > - This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > - The streaming protocol uses Server-Sent Events (SSE).
### Parameters
@@ -4204,6 +4481,8 @@ null (empty response body)
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -4212,7 +4491,7 @@ null (empty response body)
- Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ Version: 10.4.0.cl or later Sends a follow-up message to an existing conversation within the context of a data model. Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. A conversation must first be created using the `createConversation` API. #### Usage guidelines The request must include: - `conversation_identifier`: the unique session ID returned by `createConversation` - `metadata_identifier`: the unique ID of the data source used for the conversation - `message`: a natural language string with the follow-up question If the request is successful, the API returns an array of response messages, each containing: - `session_identifier`: the unique ID of the generated response - `generation_number`: the generation number of the response - `message_type`: the type of the response (e.g., `TSAnswer`) - `visualization_type`: the generated visualization type (`Chart`, `Table`, or `Undefined`) - `tokens` / `display_tokens`: the search tokens and user-friendly display tokens for the response #### Error responses | Code | Description | |------|-----------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. | > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -4240,6 +4519,8 @@ null (empty response body)
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -4248,7 +4529,7 @@ null (empty response body)
- Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.
+ Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. Requires `CAN_USE_SPOTTER` privilege, either edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, and a bearer token corresponding to the org where the data model exists. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. #### Instructions scope - **GLOBAL**: instructions that apply to all users querying this data model If the request is successful, the API returns: - `success`: a boolean indicating whether the operation completed successfully #### Error responses | Code | Description | |------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege, lacks edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, or the bearer token does not correspond to the org where the data model exists. | > ###### Note: > > - To use this API, the user needs either edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, and must use the bearer token corresponding to the org where the data model exists. > - This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > - Available from version 10.15.0.cl and later. > - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > - Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.
### Parameters
@@ -4275,6 +4556,8 @@ null (empty response body)
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -4319,7 +4602,7 @@ null (empty response body)
- Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ Version: 10.4.0.cl or later Processes a natural language query against a specified data model and returns a single AI-generated answer without requiring a conversation session. Requires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. #### Usage guidelines The request must include: - `query`: a natural language question (e.g., \"What were total sales last quarter?\") - `metadata_identifier`: the unique ID of the data source to query against If the request is successful, the API returns a response message containing: - `session_identifier`: the unique ID of the generated response - `generation_number`: the generation number of the response - `message_type`: the type of the response (e.g., `TSAnswer`) - `visualization_type`: the generated visualization type (`Chart`, `Table`, or `Undefined`) - `tokens` / `display_tokens`: the search tokens and user-friendly display tokens for the response #### Error responses | Code | Description | |------|-----------------------------------------------------------------------------------------------------------------------------------------| | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks view permission on the specified metadata object. | > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
### Parameters
@@ -4346,6 +4629,8 @@ null (empty response body)
| **200** | Common successful response | - |
| **201** | Common error response | - |
| **400** | Operation failed | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
| **500** | Operation failed | - |
@@ -4493,6 +4778,44 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **updateCollection**
+> updateCollection(collectionIdentifier, updateCollectionRequest)
+
+
+
+ Version: 26.4.0.cl or later Updates an existing collection in ThoughtSpot. #### Supported operations This API endpoint lets you perform the following operations: * Update collection name and description * Change visibility settings * Add metadata objects to the collection (operation: ADD) * Remove metadata objects from the collection (operation: REMOVE) * Replace all metadata objects in the collection (operation: REPLACE) #### Operation types * **ADD**: Adds the specified metadata objects to the existing collection without removing current items * **REMOVE**: Removes only the specified metadata objects from the collection * **REPLACE**: Replaces all existing metadata objects with the specified items (default behavior)
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **collectionIdentifier** | **String**
+| **updateCollectionRequest** | [**UpdateCollectionRequest**](UpdateCollectionRequest.md)
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **204** | Collection updated successfully. No content returned. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **404** | Resource not found. | - |
+| **500** | Unexpected error | - |
+
# **updateColumnSecurityRules**
> updateColumnSecurityRules(updateColumnSecurityRulesRequest)
@@ -5167,7 +5490,7 @@ null (empty response body)
- Update values for multiple variables Version: 10.14.0.cl or later Allows updating values for multiple variables in ThoughtSpot. Requires ADMINISTRATION role. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint allows: * Adding new values to variables * Replacing existing values * Deleting values from variables When updating variable values, you need to specify: * The variable identifiers * The values to add/replace/remove for each variable * The operation to perform (ADD, REPLACE, REMOVE, RESET) Behaviour based on operation type: * ADD - Adds values to the variable if this is a list type variable, else same as replace. * REPLACE - Replaces all values of a given set of constraints with the current set of values. * REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value. * RESET - Removes all constrains for a given variable, scope is ignored
+ Update values for multiple variables Version: 10.14.0.cl or later **Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/template/variables/{identifier}/update-values](/api/rest/2.0/template/variables/%7Bidentifier%7D/update-values) instead. Allows updating values for multiple variables in ThoughtSpot. Requires ADMINISTRATION role. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint allows: * Adding new values to variables * Replacing existing values * Deleting values from variables When updating variable values, you need to specify: * The variable identifiers * The values to add/replace/remove for each variable * The operation to perform (ADD, REPLACE, REMOVE, RESET) Behaviour based on operation type: * ADD - Adds values to the variable if this is a list type variable, else same as replace. * REPLACE - Replaces all values of a given set of constraints with the current set of values. * REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value. * RESET - Removes all constrains for a given variable, scope is ignored
### Parameters
@@ -5234,6 +5557,42 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **validateCommunicationChannel**
+> CommunicationChannelValidateResponse validateCommunicationChannel(validateCommunicationChannelRequest)
+
+
+
+ Version: 26.4.0.cl or later Validates a communication channel configuration to ensure it is properly set up and can receive events. - Use `channel_type` to specify the type of communication channel to validate (e.g., WEBHOOK). - Use `channel_identifier` to provide the unique identifier or name for the communication channel. - Use `event_type` to specify the event type to validate for this channel. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. For webhook channels, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **validateCommunicationChannelRequest** | [**ValidateCommunicationChannelRequest**](ValidateCommunicationChannelRequest.md)
+
+### Return type
+
+[**CommunicationChannelValidateResponse**](CommunicationChannelValidateResponse.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | communication channel configuration validated successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **validateEmailCustomization**
> validateEmailCustomization()
diff --git a/sdks/java/docs/UpdateCollectionRequest.md b/sdks/java/docs/UpdateCollectionRequest.md
new file mode 100644
index 000000000..b1d6187f6
--- /dev/null
+++ b/sdks/java/docs/UpdateCollectionRequest.md
@@ -0,0 +1,30 @@
+
+
+# UpdateCollectionRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | Name of the collection. | [optional] |
+|**description** | **String** | Description of the collection. | [optional] |
+|**metadata** | [**List<CollectionMetadataInput>**](CollectionMetadataInput.md) | Metadata objects to add, remove, or replace in the collection. | [optional] |
+|**operation** | [**OperationEnum**](#OperationEnum) | Type of update operation. Default operation type is REPLACE. | [optional] |
+
+
+
+## Enum: OperationEnum
+
+| Name | Value |
+|---- | -----|
+| ADD | "ADD" |
+| REMOVE | "REMOVE" |
+| REPLACE | "REPLACE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/UpdateVariableValuesRequest.md b/sdks/java/docs/UpdateVariableValuesRequest.md
index 4177b4b49..3d31ca8dc 100644
--- a/sdks/java/docs/UpdateVariableValuesRequest.md
+++ b/sdks/java/docs/UpdateVariableValuesRequest.md
@@ -7,8 +7,8 @@
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**variableAssignment** | [**List<VariableUpdateAssignmentInput>**](VariableUpdateAssignmentInput.md) | Variables and values to update | |
-|**variableValueScope** | [**List<VariableUpdateScopeInput>**](VariableUpdateScopeInput.md) | Variables and values to update | |
+|**variableAssignment** | [**List<VariableUpdateAssignmentInput>**](VariableUpdateAssignmentInput.md) | Array of variable assignment objects specifying the variable identifier, values to assign, and the operation type (ADD, REMOVE, REPLACE, or RESET) to perform on each variable. | |
+|**variableValueScope** | [**List<VariableUpdateScopeInput>**](VariableUpdateScopeInput.md) | Array of scope objects defining where the variable values apply, including organization context, optional principal constraints (user or group), model reference for formula variables, and priority for conflict resolution. | |
## Implemented Interfaces
diff --git a/sdks/java/docs/UpdateWebhookConfigurationRequest.md b/sdks/java/docs/UpdateWebhookConfigurationRequest.md
index 879928292..bd860ec7e 100644
--- a/sdks/java/docs/UpdateWebhookConfigurationRequest.md
+++ b/sdks/java/docs/UpdateWebhookConfigurationRequest.md
@@ -15,6 +15,7 @@
|**authentication** | [**WebhookAuthenticationInput**](WebhookAuthenticationInput.md) | Authorization configuration for the webhook. | [optional] |
|**signatureVerification** | [**WebhookSignatureVerificationInput**](WebhookSignatureVerificationInput.md) | Configuration for webhook signature verification. | [optional] |
|**storageDestination** | [**StorageDestinationInput**](StorageDestinationInput.md) | Configuration for storage destination. Example: {\"storage_type\": \"AWS_S3\", \"storage_config\": {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}} Version: 26.3.0.cl or later | [optional] |
+|**additionalHeaders** | [**List<WebhookKeyValuePairInput>**](WebhookKeyValuePairInput.md) | Additional headers as an array of key-value pairs. Example: [{\"key\": \"X-Custom-Header\", \"value\": \"custom_value\"}] Version: 26.4.0.cl or later | [optional] |
diff --git a/sdks/java/docs/ValidateCommunicationChannelRequest.md b/sdks/java/docs/ValidateCommunicationChannelRequest.md
new file mode 100644
index 000000000..f8714d772
--- /dev/null
+++ b/sdks/java/docs/ValidateCommunicationChannelRequest.md
@@ -0,0 +1,35 @@
+
+
+# ValidateCommunicationChannelRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**channelType** | [**ChannelTypeEnum**](#ChannelTypeEnum) | Type of communication channel to validate (e.g., WEBHOOK). | |
+|**channelIdentifier** | **String** | Unique identifier or name for the communication channel. | |
+|**eventType** | [**EventTypeEnum**](#EventTypeEnum) | Event type to validate for this channel. | |
+
+
+
+## Enum: ChannelTypeEnum
+
+| Name | Value |
+|---- | -----|
+| WEBHOOK | "WEBHOOK" |
+
+
+
+## Enum: EventTypeEnum
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/ValueScopeInput.md b/sdks/java/docs/ValueScopeInput.md
index b3ad4c7ce..10e2a8a94 100644
--- a/sdks/java/docs/ValueScopeInput.md
+++ b/sdks/java/docs/ValueScopeInput.md
@@ -2,16 +2,16 @@
# ValueScopeInput
-Input for variable scope in search
+Input for filtering variable values by scope in search operations
## Properties
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**orgIdentifier** | **String** | The unique name of the org | [optional] |
-|**principalType** | [**PrincipalTypeEnum**](#PrincipalTypeEnum) | Principal type | [optional] |
+|**principalType** | [**PrincipalTypeEnum**](#PrincipalTypeEnum) | Type of principal to filter by. Use USER to filter values assigned to specific users, or USER_GROUP to filter values assigned to groups. | [optional] |
|**principalIdentifier** | **String** | Unique ID or name of the principal | [optional] |
-|**modelIdentifier** | **String** | Model Identifier | [optional] |
+|**modelIdentifier** | **String** | Unique ID or name of the model to filter by. Applicable only for FORMULA_VARIABLE type. | [optional] |
diff --git a/sdks/java/docs/Variable.md b/sdks/java/docs/Variable.md
index 0f845111a..7c53f0865 100644
--- a/sdks/java/docs/Variable.md
+++ b/sdks/java/docs/Variable.md
@@ -24,6 +24,7 @@ Variable object
| TABLE_MAPPING | "TABLE_MAPPING" |
| CONNECTION_PROPERTY_PER_PRINCIPAL | "CONNECTION_PROPERTY_PER_PRINCIPAL" |
| FORMULA_VARIABLE | "FORMULA_VARIABLE" |
+| USER_PROPERTY | "USER_PROPERTY" |
## Implemented Interfaces
diff --git a/sdks/java/docs/VariableApi.md b/sdks/java/docs/VariableApi.md
index fea8fa740..75667e3b4 100644
--- a/sdks/java/docs/VariableApi.md
+++ b/sdks/java/docs/VariableApi.md
@@ -6,6 +6,8 @@ All URIs are relative to *CLUSTER_URL*
|------------- | ------------- |
| [**createVariable**](VariableApi.md#createVariable) | **POST** /api/rest/2.0/template/variables/create |
| [**deleteVariable**](VariableApi.md#deleteVariable) | **POST** /api/rest/2.0/template/variables/{identifier}/delete |
+| [**deleteVariables**](VariableApi.md#deleteVariables) | **POST** /api/rest/2.0/template/variables/delete |
+| [**putVariableValues**](VariableApi.md#putVariableValues) | **POST** /api/rest/2.0/template/variables/{identifier}/update-values |
| [**searchVariables**](VariableApi.md#searchVariables) | **POST** /api/rest/2.0/template/variables/search |
| [**updateVariable**](VariableApi.md#updateVariable) | **POST** /api/rest/2.0/template/variables/{identifier}/update |
| [**updateVariableValues**](VariableApi.md#updateVariableValues) | **POST** /api/rest/2.0/template/variables/update-values |
@@ -53,7 +55,7 @@ All URIs are relative to *CLUSTER_URL*
- Delete a variable Version: 10.14.0.cl or later Allows deleting a variable from ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint requires: * The variable identifier (ID or name) The operation will fail if: * The user lacks required permissions * The variable doesn't exist * The variable is being used by other objects
+ Delete a variable Version: 10.14.0.cl or later **Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/template/variables/delete](/api/rest/2.0/template/variables/delete) instead. Allows deleting a variable from ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint requires: * The variable identifier (ID or name) The operation will fail if: * The user lacks required permissions * The variable doesn't exist * The variable is being used by other objects
### Parameters
@@ -83,6 +85,79 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **deleteVariables**
+> deleteVariables(deleteVariablesRequest)
+
+
+
+ Delete variable(s) Version: 26.4.0.cl or later Allows deleting multiple variables from ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint requires: * The variable identifiers (IDs or names) The operation will fail if: * The user lacks required permissions * Any of the variables don't exist * Any of the variables are being used by other objects
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **deleteVariablesRequest** | [**DeleteVariablesRequest**](DeleteVariablesRequest.md)
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **204** | Deletion of variable(s) is successful. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
+
+# **putVariableValues**
+> putVariableValues(identifier, putVariableValuesRequest)
+
+
+
+ Update values for a variable Version: 26.4.0.cl or later Allows updating values for a specific variable in ThoughtSpot. Requires ADMINISTRATION role. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint allows: * Adding new values to the variable * Replacing existing values * Deleting values from the variable * Resetting all values When updating variable values, you need to specify: * The variable identifier (ID or name) * The values to add/replace/remove * The operation to perform (ADD, REPLACE, REMOVE, RESET) Behaviour based on operation type: * ADD - Adds values to the variable if this is a list type variable, else same as replace. * REPLACE - Replaces all values of a given set of constraints with the current set of values. * REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value. * RESET - Removes all constraints for the given variable, scope is ignored
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **identifier** | **String**
+| **putVariableValuesRequest** | [**PutVariableValuesRequest**](PutVariableValuesRequest.md)
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **204** | Variable values updated successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **searchVariables**
> List<Variable> searchVariables(searchVariablesRequest)
@@ -162,7 +237,7 @@ null (empty response body)
- Update values for multiple variables Version: 10.14.0.cl or later Allows updating values for multiple variables in ThoughtSpot. Requires ADMINISTRATION role. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint allows: * Adding new values to variables * Replacing existing values * Deleting values from variables When updating variable values, you need to specify: * The variable identifiers * The values to add/replace/remove for each variable * The operation to perform (ADD, REPLACE, REMOVE, RESET) Behaviour based on operation type: * ADD - Adds values to the variable if this is a list type variable, else same as replace. * REPLACE - Replaces all values of a given set of constraints with the current set of values. * REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value. * RESET - Removes all constrains for a given variable, scope is ignored
+ Update values for multiple variables Version: 10.14.0.cl or later **Note:** This API endpoint is deprecated and will be removed from ThoughtSpot in a future release. Use [POST /api/rest/2.0/template/variables/{identifier}/update-values](/api/rest/2.0/template/variables/%7Bidentifier%7D/update-values) instead. Allows updating values for multiple variables in ThoughtSpot. Requires ADMINISTRATION role. The CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope. The API endpoint allows: * Adding new values to variables * Replacing existing values * Deleting values from variables When updating variable values, you need to specify: * The variable identifiers * The values to add/replace/remove for each variable * The operation to perform (ADD, REPLACE, REMOVE, RESET) Behaviour based on operation type: * ADD - Adds values to the variable if this is a list type variable, else same as replace. * REPLACE - Replaces all values of a given set of constraints with the current set of values. * REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value. * RESET - Removes all constrains for a given variable, scope is ignored
### Parameters
diff --git a/sdks/java/docs/VariableDetailInput.md b/sdks/java/docs/VariableDetailInput.md
index c6d2d0fb0..e2825e97d 100644
--- a/sdks/java/docs/VariableDetailInput.md
+++ b/sdks/java/docs/VariableDetailInput.md
@@ -22,6 +22,7 @@ Input for variable details in search
| TABLE_MAPPING | "TABLE_MAPPING" |
| CONNECTION_PROPERTY_PER_PRINCIPAL | "CONNECTION_PROPERTY_PER_PRINCIPAL" |
| FORMULA_VARIABLE | "FORMULA_VARIABLE" |
+| USER_PROPERTY | "USER_PROPERTY" |
## Implemented Interfaces
diff --git a/sdks/java/docs/VariablePutAssignmentInput.md b/sdks/java/docs/VariablePutAssignmentInput.md
new file mode 100644
index 000000000..0f174601f
--- /dev/null
+++ b/sdks/java/docs/VariablePutAssignmentInput.md
@@ -0,0 +1,32 @@
+
+
+# VariablePutAssignmentInput
+
+Input for variable value put operations
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**assignedValues** | **List<String>** | Values of the variable | |
+|**orgIdentifier** | **String** | The unique name of the org | [optional] |
+|**principalType** | [**PrincipalTypeEnum**](#PrincipalTypeEnum) | Principal type | [optional] |
+|**principalIdentifier** | **String** | Unique ID or name of the principal | [optional] |
+|**modelIdentifier** | **String** | Unique ID of the model | [optional] |
+|**priority** | **Integer** | Priority level | [optional] |
+
+
+
+## Enum: PrincipalTypeEnum
+
+| Name | Value |
+|---- | -----|
+| USER | "USER" |
+| USER_GROUP | "USER_GROUP" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/VariableUpdateScopeInput.md b/sdks/java/docs/VariableUpdateScopeInput.md
index a1e2a1d7a..79ebe6efd 100644
--- a/sdks/java/docs/VariableUpdateScopeInput.md
+++ b/sdks/java/docs/VariableUpdateScopeInput.md
@@ -2,17 +2,17 @@
# VariableUpdateScopeInput
-Input for variable value update in batch operations
+Input for defining the scope of variable value assignments in batch update operations
## Properties
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**orgIdentifier** | **String** | The unique name of the org | |
-|**principalType** | [**PrincipalTypeEnum**](#PrincipalTypeEnum) | Principal type | [optional] |
+|**principalType** | [**PrincipalTypeEnum**](#PrincipalTypeEnum) | Type of principal to which the variable value applies. Use USER to assign values to a specific user, or USER_GROUP to assign values to a group. | [optional] |
|**principalIdentifier** | **String** | Unique ID or name of the principal | [optional] |
-|**modelIdentifier** | **String** | Unique ID of the model | [optional] |
-|**priority** | **Integer** | Priority level | [optional] |
+|**modelIdentifier** | **String** | Unique ID or name of the model. Required for FORMULA_VARIABLE type to scope the variable value to a specific worksheet. | [optional] |
+|**priority** | **Integer** | The priority level for this scope assignment, used for conflict resolution when multiple values match. Higher priority values (larger numbers) take precedence. | [optional] |
diff --git a/sdks/java/docs/VariableValue.md b/sdks/java/docs/VariableValue.md
index 8cc454eb1..521e15cc0 100644
--- a/sdks/java/docs/VariableValue.md
+++ b/sdks/java/docs/VariableValue.md
@@ -10,7 +10,7 @@
|**value** | **String** | The value of the variable | [optional] |
|**valueList** | **List<String>** | The value of the variable if it is a list type | [optional] |
|**orgIdentifier** | **String** | The unique name of the org | |
-|**principalType** | [**PrincipalTypeEnum**](#PrincipalTypeEnum) | Principal type | [optional] |
+|**principalType** | [**PrincipalTypeEnum**](#PrincipalTypeEnum) | Type of principal to which this value applies. Use USER to assign the value to a specific user, or USER_GROUP to assign it to a group. | [optional] |
|**principalIdentifier** | **String** | Unique ID or name of the principal | [optional] |
|**modelIdentifier** | **String** | Unique ID of the model Version: 26.3.0.cl or later | [optional] |
|**priority** | **Integer** | The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked. | [optional] |
diff --git a/sdks/java/docs/WebhookKeyValuePair.md b/sdks/java/docs/WebhookKeyValuePair.md
new file mode 100644
index 000000000..f1377db02
--- /dev/null
+++ b/sdks/java/docs/WebhookKeyValuePair.md
@@ -0,0 +1,19 @@
+
+
+# WebhookKeyValuePair
+
+Key-value pair for additional webhook headers.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**key** | **String** | Header name. | |
+|**value** | **String** | Header value. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookKeyValuePairInput.md b/sdks/java/docs/WebhookKeyValuePairInput.md
new file mode 100644
index 000000000..1764c3c37
--- /dev/null
+++ b/sdks/java/docs/WebhookKeyValuePairInput.md
@@ -0,0 +1,19 @@
+
+
+# WebhookKeyValuePairInput
+
+Key-value pair input for additional webhook headers.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**key** | **String** | Header name. | |
+|**value** | **String** | Header value. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookResponse.md b/sdks/java/docs/WebhookResponse.md
index cbc8f7591..82e9cf6d3 100644
--- a/sdks/java/docs/WebhookResponse.md
+++ b/sdks/java/docs/WebhookResponse.md
@@ -16,6 +16,7 @@
|**events** | [**List<EventsEnum>**](#List<EventsEnum>) | List of events this webhook subscribes to. | |
|**authentication** | [**WebhookAuthentication**](WebhookAuthentication.md) | | [optional] |
|**signatureVerification** | [**WebhookSignatureVerification**](WebhookSignatureVerification.md) | | [optional] |
+|**additionalHeaders** | [**List<WebhookKeyValuePair>**](WebhookKeyValuePair.md) | Additional headers as an array of key-value pairs. Version: 26.4.0.cl or later | [optional] |
|**creationTimeInMillis** | **Float** | Creation time of the webhook configuration in milliseconds. | |
|**modificationTimeInMillis** | **Float** | Last modified time of the webhook configuration in milliseconds. | |
|**createdBy** | [**WebhookUser**](WebhookUser.md) | | [optional] |
diff --git a/sdks/java/pom.xml b/sdks/java/pom.xml
index 472e7cbd0..050f470b4 100644
--- a/sdks/java/pom.xml
+++ b/sdks/java/pom.xml
@@ -4,7 +4,7 @@
com.thoughtspotrest-api-sdk
- 2.22.0
+ 2.23.0jarrest-api-sdk
@@ -351,7 +351,7 @@
4.12.02.10.13.17.0
- 0.2.10
+ 0.2.61.3.52.0.25.10.3
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/ApiClient.java b/sdks/java/src/main/java/com/thoughtspot/client/ApiClient.java
index e2643724b..8482d7394 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/ApiClient.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/ApiClient.java
@@ -182,7 +182,7 @@ private void init() {
json = new JSON();
// Set default User-Agent.
- setUserAgent("ThoughtSpot-Client/java/2.22.0");
+ setUserAgent("ThoughtSpot-Client/java/2.23.0");
authentications = new HashMap();
}
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/Configuration.java b/sdks/java/src/main/java/com/thoughtspot/client/Configuration.java
index 7b1da538a..247055d3a 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/Configuration.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/Configuration.java
@@ -8,7 +8,7 @@
value = "org.openapitools.codegen.languages.JavaClientCodegen",
comments = "Generator version: 7.12.0")
public class Configuration {
- public static final String VERSION = "2.22.0";
+ public static final String VERSION = "2.23.0";
private static volatile ApiClient defaultApiClient = new ApiClient();
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/JSON.java b/sdks/java/src/main/java/com/thoughtspot/client/JSON.java
index 6772d61ab..5ce39152a 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/JSON.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/JSON.java
@@ -156,11 +156,44 @@ private static Class getClassByDiscriminator(
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.ChangeUserPasswordRequest
.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.ChannelHistoryEventInfo
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.ChannelHistoryEventInput
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.ChannelHistoryJob.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.ChannelValidationAwsS3Info
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.ChannelValidationDetail
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.ClusterNonEmbedAccess.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.ClusterNonEmbedAccessInput
.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.Collection.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.CollectionDeleteResponse
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.CollectionDeleteTypeIdentifiers
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.CollectionEntityIdentifier
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.CollectionMetadataInput
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.CollectionMetadataItem.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.CollectionSearchResponse
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.Column.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -199,6 +232,9 @@ private static Class getClassByDiscriminator(
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.CommunicationChannelPreferencesResponse
.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.CommunicationChannelValidateResponse
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.ConfigureCommunicationChannelPreferencesRequest
.CustomTypeAdapterFactory());
@@ -230,6 +266,9 @@ private static Class getClassByDiscriminator(
.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.CreateCalendarRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.CreateCollectionRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.CreateConfigRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -307,6 +346,9 @@ private static Class getClassByDiscriminator(
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.DefaultActionConfigSearchInput
.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.DeleteCollectionRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.DeleteConfigRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -323,6 +365,8 @@ private static Class getClassByDiscriminator(
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.DeleteOrgEmailCustomizationRequest
.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.DeleteVariablesRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.DeleteWebhookConfigurationsRequest
.CustomTypeAdapterFactory());
@@ -501,6 +545,8 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.JWTUserOptions.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.JWTUserOptionsFull.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.JobRecipient.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.LBContextInput.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -575,6 +621,9 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.OrgType.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.ParameterValues.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.ParameterizeMetadataFieldsRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.ParameterizeMetadataRequest
.CustomTypeAdapterFactory());
@@ -617,6 +666,9 @@ private static Class getClassByDiscriminator(
.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.PublishMetadataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.PutVariableValuesRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.QueryGetDecomposedQueryRequest
.CustomTypeAdapterFactory());
@@ -718,6 +770,15 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.ScriptSrcUrlsInput.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.SearchCalendarsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.SearchChannelHistoryRequest
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.SearchChannelHistoryResponse
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.SearchCollectionsRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.SearchCommitsRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -865,6 +926,9 @@ private static Class getClassByDiscriminator(
.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.UpdateCalendarRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.UpdateCollectionRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.UpdateColumnSecurityRulesRequest
.CustomTypeAdapterFactory());
@@ -930,6 +994,9 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.UserParameterOptions.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.UserPrincipal.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.ValidateCommunicationChannelRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.ValidateMergeRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -940,6 +1007,9 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.Variable.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.VariableDetailInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.VariablePutAssignmentInput
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.VariableUpdateAssignmentInput
.CustomTypeAdapterFactory());
@@ -972,6 +1042,11 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.WebhookDeleteFailure.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.WebhookDeleteResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookKeyValuePair.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookKeyValuePairInput
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.WebhookOrg.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/api/AiApi.java b/sdks/java/src/main/java/com/thoughtspot/client/api/AiApi.java
index b37a4c76b..62496f195 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/api/AiApi.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/api/AiApi.java
@@ -111,6 +111,8 @@ public void setCustomBaseUrl(String customBaseUrl) {
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -186,7 +188,49 @@ private okhttp3.Call createAgentConversationValidateBeforeCall(
}
/**
- * Version: 10.13.0.cl or later
+ * Version: 26.2.0.cl or later Creates a new Spotter agent conversation based on the provided
+ * context and settings. The endpoint was in Beta from 26.2.0.cl through 26.4.0.cl. Requires
+ * `CAN_USE_SPOTTER` privilege and at least view access to the metadata object
+ * specified in the request. #### Usage guidelines The request must include the
+ * `metadata_context` parameter to define the conversation context. The context type
+ * can be one of: - `DATA_SOURCE` *(available from 26.5.0.cl)*: targets a specific
+ * data source. Provide `data_source_identifier` in `data_source_context`
+ * for a single data source, or `data_source_identifiers` for multi-data-source
+ * context. The deprecated `guid` field is accepted for backwards compatibility. -
+ * `AUTO_MODE` *(available from 26.5.0.cl)*: automatically discovers and selects the
+ * most relevant datasets for the user's queries. > **Note for callers on versions
+ * 26.2.0.cl – 26.4.0.cl (Beta):** use the lowercase `data_source` enum value with the
+ * `guid` field instead of the above. Example: `{ \"type\":
+ * \"data_source\", \"data_source_context\": { \"guid\":
+ * \"<worksheet-id>\" } }`. The `conversation_settings` parameter
+ * controls which Spotter capabilities are enabled for the conversation: -
+ * `enable_contextual_change_analysis` (default: `true`, **deprecated from
+ * 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect
+ * on versions >= 26.2.0.cl - `enable_natural_language_answer_generation`
+ * (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3;
+ * setting this to `false` has no effect on versions >= 26.2.0.cl -
+ * `enable_reasoning` (default: `true`, **deprecated from 26.2.0.cl**) —
+ * always enabled in Spotter 3; setting this to `false` has no effect on versions
+ * >= 26.2.0.cl - `enable_save_chat` (default: `false`, *available
+ * from 26.5.0.cl*) — enables saving the conversation for later retrieval via conversation
+ * history If the request is successful, the response includes a unique
+ * `conversation_identifier` that must be passed to
+ * `sendAgentConversationMessage` or `sendAgentConversationMessageStreaming`
+ * to send messages within this conversation. The response also includes
+ * `conversation_id` with the same value for backwards compatibility; use
+ * `conversation_identifier` for new integrations. #### Example request
+ * ```json { \"metadata_context\": { \"type\":
+ * \"DATA_SOURCE\", \"data_source_context\": {
+ * \"data_source_identifier\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\" } },
+ * \"conversation_settings\": {} } ``` #### Error responses | Code |
+ * Description | | ---- |
+ * ---------------------------------------------------------------------------------------------------------------------------------------
+ * | | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view permission on the specified metadata object. | > ###### Note: > > - This
+ * endpoint was in Beta from 26.2.0.cl through 26.4.0.cl and is Generally Available from version
+ * 26.5.0.cl. > - This endpoint requires Spotter - please contact ThoughtSpot support to
+ * enable Spotter on your cluster.
*
* @param createAgentConversationRequest (required)
* @return AgentConversation
@@ -199,6 +243,8 @@ private okhttp3.Call createAgentConversationValidateBeforeCall(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -210,7 +256,49 @@ public AgentConversation createAgentConversation(
}
/**
- * Version: 10.13.0.cl or later
+ * Version: 26.2.0.cl or later Creates a new Spotter agent conversation based on the provided
+ * context and settings. The endpoint was in Beta from 26.2.0.cl through 26.4.0.cl. Requires
+ * `CAN_USE_SPOTTER` privilege and at least view access to the metadata object
+ * specified in the request. #### Usage guidelines The request must include the
+ * `metadata_context` parameter to define the conversation context. The context type
+ * can be one of: - `DATA_SOURCE` *(available from 26.5.0.cl)*: targets a specific
+ * data source. Provide `data_source_identifier` in `data_source_context`
+ * for a single data source, or `data_source_identifiers` for multi-data-source
+ * context. The deprecated `guid` field is accepted for backwards compatibility. -
+ * `AUTO_MODE` *(available from 26.5.0.cl)*: automatically discovers and selects the
+ * most relevant datasets for the user's queries. > **Note for callers on versions
+ * 26.2.0.cl – 26.4.0.cl (Beta):** use the lowercase `data_source` enum value with the
+ * `guid` field instead of the above. Example: `{ \"type\":
+ * \"data_source\", \"data_source_context\": { \"guid\":
+ * \"<worksheet-id>\" } }`. The `conversation_settings` parameter
+ * controls which Spotter capabilities are enabled for the conversation: -
+ * `enable_contextual_change_analysis` (default: `true`, **deprecated from
+ * 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect
+ * on versions >= 26.2.0.cl - `enable_natural_language_answer_generation`
+ * (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3;
+ * setting this to `false` has no effect on versions >= 26.2.0.cl -
+ * `enable_reasoning` (default: `true`, **deprecated from 26.2.0.cl**) —
+ * always enabled in Spotter 3; setting this to `false` has no effect on versions
+ * >= 26.2.0.cl - `enable_save_chat` (default: `false`, *available
+ * from 26.5.0.cl*) — enables saving the conversation for later retrieval via conversation
+ * history If the request is successful, the response includes a unique
+ * `conversation_identifier` that must be passed to
+ * `sendAgentConversationMessage` or `sendAgentConversationMessageStreaming`
+ * to send messages within this conversation. The response also includes
+ * `conversation_id` with the same value for backwards compatibility; use
+ * `conversation_identifier` for new integrations. #### Example request
+ * ```json { \"metadata_context\": { \"type\":
+ * \"DATA_SOURCE\", \"data_source_context\": {
+ * \"data_source_identifier\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\" } },
+ * \"conversation_settings\": {} } ``` #### Error responses | Code |
+ * Description | | ---- |
+ * ---------------------------------------------------------------------------------------------------------------------------------------
+ * | | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view permission on the specified metadata object. | > ###### Note: > > - This
+ * endpoint was in Beta from 26.2.0.cl through 26.4.0.cl and is Generally Available from version
+ * 26.5.0.cl. > - This endpoint requires Spotter - please contact ThoughtSpot support to
+ * enable Spotter on your cluster.
*
* @param createAgentConversationRequest (required)
* @return ApiResponse<AgentConversation>
@@ -223,6 +311,8 @@ public AgentConversation createAgentConversation(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -235,7 +325,49 @@ public ApiResponse createAgentConversationWithHttpInfo(
}
/**
- * (asynchronously) Version: 10.13.0.cl or later
+ * (asynchronously) Version: 26.2.0.cl or later Creates a new Spotter agent conversation based
+ * on the provided context and settings. The endpoint was in Beta from 26.2.0.cl through
+ * 26.4.0.cl. Requires `CAN_USE_SPOTTER` privilege and at least view access to the
+ * metadata object specified in the request. #### Usage guidelines The request must include the
+ * `metadata_context` parameter to define the conversation context. The context type
+ * can be one of: - `DATA_SOURCE` *(available from 26.5.0.cl)*: targets a specific
+ * data source. Provide `data_source_identifier` in `data_source_context`
+ * for a single data source, or `data_source_identifiers` for multi-data-source
+ * context. The deprecated `guid` field is accepted for backwards compatibility. -
+ * `AUTO_MODE` *(available from 26.5.0.cl)*: automatically discovers and selects the
+ * most relevant datasets for the user's queries. > **Note for callers on versions
+ * 26.2.0.cl – 26.4.0.cl (Beta):** use the lowercase `data_source` enum value with the
+ * `guid` field instead of the above. Example: `{ \"type\":
+ * \"data_source\", \"data_source_context\": { \"guid\":
+ * \"<worksheet-id>\" } }`. The `conversation_settings` parameter
+ * controls which Spotter capabilities are enabled for the conversation: -
+ * `enable_contextual_change_analysis` (default: `true`, **deprecated from
+ * 26.2.0.cl**) — always enabled in Spotter 3; setting this to `false` has no effect
+ * on versions >= 26.2.0.cl - `enable_natural_language_answer_generation`
+ * (default: `true`, **deprecated from 26.2.0.cl**) — always enabled in Spotter 3;
+ * setting this to `false` has no effect on versions >= 26.2.0.cl -
+ * `enable_reasoning` (default: `true`, **deprecated from 26.2.0.cl**) —
+ * always enabled in Spotter 3; setting this to `false` has no effect on versions
+ * >= 26.2.0.cl - `enable_save_chat` (default: `false`, *available
+ * from 26.5.0.cl*) — enables saving the conversation for later retrieval via conversation
+ * history If the request is successful, the response includes a unique
+ * `conversation_identifier` that must be passed to
+ * `sendAgentConversationMessage` or `sendAgentConversationMessageStreaming`
+ * to send messages within this conversation. The response also includes
+ * `conversation_id` with the same value for backwards compatibility; use
+ * `conversation_identifier` for new integrations. #### Example request
+ * ```json { \"metadata_context\": { \"type\":
+ * \"DATA_SOURCE\", \"data_source_context\": {
+ * \"data_source_identifier\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\" } },
+ * \"conversation_settings\": {} } ``` #### Error responses | Code |
+ * Description | | ---- |
+ * ---------------------------------------------------------------------------------------------------------------------------------------
+ * | | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view permission on the specified metadata object. | > ###### Note: > > - This
+ * endpoint was in Beta from 26.2.0.cl through 26.4.0.cl and is Generally Available from version
+ * 26.5.0.cl. > - This endpoint requires Spotter - please contact ThoughtSpot support to
+ * enable Spotter on your cluster.
*
* @param createAgentConversationRequest (required)
* @param _callback The callback to be executed when the API call finishes
@@ -249,6 +381,8 @@ public ApiResponse createAgentConversationWithHttpInfo(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -278,6 +412,8 @@ public okhttp3.Call createAgentConversationAsync(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -351,13 +487,18 @@ private okhttp3.Call createConversationValidateBeforeCall(
}
/**
- * Version: 10.4.0.cl or later Creates a Conversation object to start an AI-driven conversation
- * based on a specific data model. Requires at least view access to the metadata object
- * specified in the request. #### Usage guidelines This API requires the
- * `metadata_identifier` parameter to define the context for the conversation. You can
- * also specify the tokens to initiate the conversation as shown in this example:
- * `\"tokens\": \"[tea],[sales],[type]\"` If the API request is
- * successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This
+ * Version: 10.4.0.cl or later Creates a new conversation session tied to a specific data model
+ * for AI-driven natural language querying. Requires `CAN_USE_SPOTTER` privilege and
+ * at least view access to the metadata object specified in the request. #### Usage guidelines
+ * The request must include: - `metadata_identifier`: the unique ID of the data source
+ * that provides context for the conversation Optionally, you can provide: - `tokens`:
+ * a token string to set initial context for the conversation (e.g., `\"[sales],[item
+ * type],[state]\"`) If the request is successful, ThoughtSpot returns a unique
+ * `conversation_identifier` that must be passed to `sendMessage` to
+ * continue the conversation. #### Error responses | Code | Description | |------|-------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view permission on the specified metadata object. | > ###### Note: > * This
* endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made
* Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot
* support to enable Spotter on your cluster.
@@ -373,6 +514,8 @@ private okhttp3.Call createConversationValidateBeforeCall(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -384,13 +527,18 @@ public Conversation createConversation(CreateConversationRequest createConversat
}
/**
- * Version: 10.4.0.cl or later Creates a Conversation object to start an AI-driven conversation
- * based on a specific data model. Requires at least view access to the metadata object
- * specified in the request. #### Usage guidelines This API requires the
- * `metadata_identifier` parameter to define the context for the conversation. You can
- * also specify the tokens to initiate the conversation as shown in this example:
- * `\"tokens\": \"[tea],[sales],[type]\"` If the API request is
- * successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This
+ * Version: 10.4.0.cl or later Creates a new conversation session tied to a specific data model
+ * for AI-driven natural language querying. Requires `CAN_USE_SPOTTER` privilege and
+ * at least view access to the metadata object specified in the request. #### Usage guidelines
+ * The request must include: - `metadata_identifier`: the unique ID of the data source
+ * that provides context for the conversation Optionally, you can provide: - `tokens`:
+ * a token string to set initial context for the conversation (e.g., `\"[sales],[item
+ * type],[state]\"`) If the request is successful, ThoughtSpot returns a unique
+ * `conversation_identifier` that must be passed to `sendMessage` to
+ * continue the conversation. #### Error responses | Code | Description | |------|-------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view permission on the specified metadata object. | > ###### Note: > * This
* endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made
* Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot
* support to enable Spotter on your cluster.
@@ -406,6 +554,8 @@ public Conversation createConversation(CreateConversationRequest createConversat
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -418,13 +568,19 @@ public ApiResponse createConversationWithHttpInfo(
}
/**
- * (asynchronously) Version: 10.4.0.cl or later Creates a Conversation object to start an
- * AI-driven conversation based on a specific data model. Requires at least view access to the
- * metadata object specified in the request. #### Usage guidelines This API requires the
- * `metadata_identifier` parameter to define the context for the conversation. You can
- * also specify the tokens to initiate the conversation as shown in this example:
- * `\"tokens\": \"[tea],[sales],[type]\"` If the API request is
- * successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This
+ * (asynchronously) Version: 10.4.0.cl or later Creates a new conversation session tied to a
+ * specific data model for AI-driven natural language querying. Requires
+ * `CAN_USE_SPOTTER` privilege and at least view access to the metadata object
+ * specified in the request. #### Usage guidelines The request must include: -
+ * `metadata_identifier`: the unique ID of the data source that provides context for
+ * the conversation Optionally, you can provide: - `tokens`: a token string to set
+ * initial context for the conversation (e.g., `\"[sales],[item
+ * type],[state]\"`) If the request is successful, ThoughtSpot returns a unique
+ * `conversation_identifier` that must be passed to `sendMessage` to
+ * continue the conversation. #### Error responses | Code | Description | |------|-------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view permission on the specified metadata object. | > ###### Note: > * This
* endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made
* Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot
* support to enable Spotter on your cluster.
@@ -441,6 +597,8 @@ public ApiResponse createConversationWithHttpInfo(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -469,6 +627,8 @@ public okhttp3.Call createConversationAsync(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -544,19 +704,25 @@ private okhttp3.Call getDataSourceSuggestionsValidateBeforeCall(
}
/**
- * Version: 10.15.0.cl or later Provides relevant data source recommendations for a
- * user-submitted natural language query. To use this API, the user must have at least
- * view-level access to the underlying metadata entities referenced in the response. #### Usage
- * guidelines The request must include a `query` string via the request body. The
- * returned results include metadata such as: - `confidence`: a float indicating the
- * model's confidence in the relevance of each recommendation - `details`:
- * includes `data_source_identifier`, `data_source_name`, and
- * `description` of each recommended data source - `reasoning`: rationale
- * provided by the LLM to explain why each data source was recommended If the API request is
- * successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant
- * reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may
- * be introduced before it is made Generally Available. > * This endpoint requires Spotter —
- * please contact ThoughtSpot Support to enable Spotter on your cluster.
+ * Version: 10.15.0.cl or later Suggests the most relevant data sources for a given natural
+ * language query, ranked by confidence with LLM-generated reasoning. Requires
+ * `CAN_USE_SPOTTER` privilege and at least view-level access to the underlying
+ * metadata entities referenced in the response. #### Usage guidelines The request must include:
+ * - `query`: the natural language question to find relevant data sources for If the
+ * request is successful, the API returns a ranked list of suggested data sources, each
+ * containing: - `confidence`: a float score indicating the model's confidence in
+ * the relevance of the suggestion - `details`: metadata about the data source -
+ * `data_source_identifier`: the unique ID of the data source -
+ * `data_source_name`: the display name of the data source - `description`:
+ * a description of the data source - `reasoning`: LLM-generated rationale explaining
+ * why the data source was recommended #### Error responses | Code | Description |
+ * |------|--------------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view permission on the underlying metadata entities. | > ###### Note: > * This
+ * endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally
+ * Available. > * This endpoint requires Spotter — please contact ThoughtSpot Support to
+ * enable Spotter on your cluster.
*
* @param getDataSourceSuggestionsRequest (required)
* @return EurekaDataSourceSuggestionResponse
@@ -569,6 +735,8 @@ private okhttp3.Call getDataSourceSuggestionsValidateBeforeCall(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -580,19 +748,25 @@ public EurekaDataSourceSuggestionResponse getDataSourceSuggestions(
}
/**
- * Version: 10.15.0.cl or later Provides relevant data source recommendations for a
- * user-submitted natural language query. To use this API, the user must have at least
- * view-level access to the underlying metadata entities referenced in the response. #### Usage
- * guidelines The request must include a `query` string via the request body. The
- * returned results include metadata such as: - `confidence`: a float indicating the
- * model's confidence in the relevance of each recommendation - `details`:
- * includes `data_source_identifier`, `data_source_name`, and
- * `description` of each recommended data source - `reasoning`: rationale
- * provided by the LLM to explain why each data source was recommended If the API request is
- * successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant
- * reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may
- * be introduced before it is made Generally Available. > * This endpoint requires Spotter —
- * please contact ThoughtSpot Support to enable Spotter on your cluster.
+ * Version: 10.15.0.cl or later Suggests the most relevant data sources for a given natural
+ * language query, ranked by confidence with LLM-generated reasoning. Requires
+ * `CAN_USE_SPOTTER` privilege and at least view-level access to the underlying
+ * metadata entities referenced in the response. #### Usage guidelines The request must include:
+ * - `query`: the natural language question to find relevant data sources for If the
+ * request is successful, the API returns a ranked list of suggested data sources, each
+ * containing: - `confidence`: a float score indicating the model's confidence in
+ * the relevance of the suggestion - `details`: metadata about the data source -
+ * `data_source_identifier`: the unique ID of the data source -
+ * `data_source_name`: the display name of the data source - `description`:
+ * a description of the data source - `reasoning`: LLM-generated rationale explaining
+ * why the data source was recommended #### Error responses | Code | Description |
+ * |------|--------------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view permission on the underlying metadata entities. | > ###### Note: > * This
+ * endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally
+ * Available. > * This endpoint requires Spotter — please contact ThoughtSpot Support to
+ * enable Spotter on your cluster.
*
* @param getDataSourceSuggestionsRequest (required)
* @return ApiResponse<EurekaDataSourceSuggestionResponse>
@@ -605,6 +779,8 @@ public EurekaDataSourceSuggestionResponse getDataSourceSuggestions(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -617,19 +793,25 @@ public ApiResponse getDataSourceSuggestionsW
}
/**
- * (asynchronously) Version: 10.15.0.cl or later Provides relevant data source recommendations
- * for a user-submitted natural language query. To use this API, the user must have at least
- * view-level access to the underlying metadata entities referenced in the response. #### Usage
- * guidelines The request must include a `query` string via the request body. The
- * returned results include metadata such as: - `confidence`: a float indicating the
- * model's confidence in the relevance of each recommendation - `details`:
- * includes `data_source_identifier`, `data_source_name`, and
- * `description` of each recommended data source - `reasoning`: rationale
- * provided by the LLM to explain why each data source was recommended If the API request is
- * successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant
- * reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may
- * be introduced before it is made Generally Available. > * This endpoint requires Spotter —
- * please contact ThoughtSpot Support to enable Spotter on your cluster.
+ * (asynchronously) Version: 10.15.0.cl or later Suggests the most relevant data sources for a
+ * given natural language query, ranked by confidence with LLM-generated reasoning. Requires
+ * `CAN_USE_SPOTTER` privilege and at least view-level access to the underlying
+ * metadata entities referenced in the response. #### Usage guidelines The request must include:
+ * - `query`: the natural language question to find relevant data sources for If the
+ * request is successful, the API returns a ranked list of suggested data sources, each
+ * containing: - `confidence`: a float score indicating the model's confidence in
+ * the relevance of the suggestion - `details`: metadata about the data source -
+ * `data_source_identifier`: the unique ID of the data source -
+ * `data_source_name`: the display name of the data source - `description`:
+ * a description of the data source - `reasoning`: LLM-generated rationale explaining
+ * why the data source was recommended #### Error responses | Code | Description |
+ * |------|--------------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view permission on the underlying metadata entities. | > ###### Note: > * This
+ * endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally
+ * Available. > * This endpoint requires Spotter — please contact ThoughtSpot Support to
+ * enable Spotter on your cluster.
*
* @param getDataSourceSuggestionsRequest (required)
* @param _callback The callback to be executed when the API call finishes
@@ -643,6 +825,8 @@ public ApiResponse getDataSourceSuggestionsW
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -672,6 +856,8 @@ public okhttp3.Call getDataSourceSuggestionsAsync(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -745,23 +931,28 @@ private okhttp3.Call getNLInstructionsValidateBeforeCall(
}
/**
- * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL)
- * instructions for a specific data-model. These instructions guide the AI system in
- * understanding data context and generating more accurate responses when processing natural
- * language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the
- * request must include: - `data_source_identifier`: The unique ID of the data-model
- * to retrieve NL instructions The API returns a response object with: -
- * `nl_instructions_info`: An array of instruction objects, each containing: -
- * `instructions`: Array of text instructions for natural language processing -
- * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to
- * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that
- * apply globally across the system on the given data-model (currently only global instructions
- * are supported) > ###### Note: > * To use this API, the user needs atleast view access
- * on the data-model and they must use corresponding org related bearerToken where the
- * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be
- * introduced before the endpoint is made Generally Available. > * Available from version
- * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot
- * Support to enable Spotter on your cluster. > * Use this API to view currently configured
+ * Version: 10.15.0.cl or later Retrieves existing natural language (NL) instructions configured
+ * for a specific data model. These instructions guide the AI system in understanding data
+ * context and generating more accurate responses. Requires `CAN_USE_SPOTTER`
+ * privilege, at least view access on the data model, and a bearer token corresponding to the
+ * org where the data model exists. #### Usage guidelines The request must include: -
+ * `data_source_identifier`: the unique ID of the data model to retrieve instructions
+ * for If the request is successful, the API returns: - `nl_instructions_info`: an
+ * array of instruction objects, each containing: - `instructions`: the configured
+ * text instructions for AI processing - `scope`: the scope of the instruction —
+ * currently only `GLOBAL` is supported #### Instructions scope - **GLOBAL**:
+ * Instructions that apply globally across the system on the given data-model (currently only
+ * global instructions are supported) #### Error responses | Code | Description |
+ * |------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege, lacks
+ * view access on the data model, or the bearer token does not correspond to the org where the
+ * data model exists. | > ###### Note: > > - To use this API, the user needs at least
+ * view access on the data model, and must use the bearer token corresponding to the org where
+ * the data model exists. > - This endpoint is currently in Beta. Breaking changes may be
+ * introduced before the endpoint is made Generally Available. > - Available from version
+ * 10.15.0.cl and later. > - This endpoint requires Spotter — please contact ThoughtSpot
+ * Support to enable Spotter on your cluster. > - Use this API to review currently configured
* instructions before modifying them with `setNLInstructions`.
*
* @param getNLInstructionsRequest (required)
@@ -775,6 +966,8 @@ private okhttp3.Call getNLInstructionsValidateBeforeCall(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -786,23 +979,28 @@ public EurekaGetNLInstructionsResponse getNLInstructions(
}
/**
- * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL)
- * instructions for a specific data-model. These instructions guide the AI system in
- * understanding data context and generating more accurate responses when processing natural
- * language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the
- * request must include: - `data_source_identifier`: The unique ID of the data-model
- * to retrieve NL instructions The API returns a response object with: -
- * `nl_instructions_info`: An array of instruction objects, each containing: -
- * `instructions`: Array of text instructions for natural language processing -
- * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to
- * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that
- * apply globally across the system on the given data-model (currently only global instructions
- * are supported) > ###### Note: > * To use this API, the user needs atleast view access
- * on the data-model and they must use corresponding org related bearerToken where the
- * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be
- * introduced before the endpoint is made Generally Available. > * Available from version
- * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot
- * Support to enable Spotter on your cluster. > * Use this API to view currently configured
+ * Version: 10.15.0.cl or later Retrieves existing natural language (NL) instructions configured
+ * for a specific data model. These instructions guide the AI system in understanding data
+ * context and generating more accurate responses. Requires `CAN_USE_SPOTTER`
+ * privilege, at least view access on the data model, and a bearer token corresponding to the
+ * org where the data model exists. #### Usage guidelines The request must include: -
+ * `data_source_identifier`: the unique ID of the data model to retrieve instructions
+ * for If the request is successful, the API returns: - `nl_instructions_info`: an
+ * array of instruction objects, each containing: - `instructions`: the configured
+ * text instructions for AI processing - `scope`: the scope of the instruction —
+ * currently only `GLOBAL` is supported #### Instructions scope - **GLOBAL**:
+ * Instructions that apply globally across the system on the given data-model (currently only
+ * global instructions are supported) #### Error responses | Code | Description |
+ * |------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege, lacks
+ * view access on the data model, or the bearer token does not correspond to the org where the
+ * data model exists. | > ###### Note: > > - To use this API, the user needs at least
+ * view access on the data model, and must use the bearer token corresponding to the org where
+ * the data model exists. > - This endpoint is currently in Beta. Breaking changes may be
+ * introduced before the endpoint is made Generally Available. > - Available from version
+ * 10.15.0.cl and later. > - This endpoint requires Spotter — please contact ThoughtSpot
+ * Support to enable Spotter on your cluster. > - Use this API to review currently configured
* instructions before modifying them with `setNLInstructions`.
*
* @param getNLInstructionsRequest (required)
@@ -816,6 +1014,8 @@ public EurekaGetNLInstructionsResponse getNLInstructions(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -828,23 +1028,29 @@ public ApiResponse getNLInstructionsWithHttpInf
}
/**
- * (asynchronously) Version: 10.15.0.cl or later This API allows users to retrieve existing
- * natural language (NL) instructions for a specific data-model. These instructions guide the AI
- * system in understanding data context and generating more accurate responses when processing
- * natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model,
- * the request must include: - `data_source_identifier`: The unique ID of the
- * data-model to retrieve NL instructions The API returns a response object with: -
- * `nl_instructions_info`: An array of instruction objects, each containing: -
- * `instructions`: Array of text instructions for natural language processing -
- * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to
- * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that
- * apply globally across the system on the given data-model (currently only global instructions
- * are supported) > ###### Note: > * To use this API, the user needs atleast view access
- * on the data-model and they must use corresponding org related bearerToken where the
- * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be
- * introduced before the endpoint is made Generally Available. > * Available from version
- * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot
- * Support to enable Spotter on your cluster. > * Use this API to view currently configured
+ * (asynchronously) Version: 10.15.0.cl or later Retrieves existing natural language (NL)
+ * instructions configured for a specific data model. These instructions guide the AI system in
+ * understanding data context and generating more accurate responses. Requires
+ * `CAN_USE_SPOTTER` privilege, at least view access on the data model, and a bearer
+ * token corresponding to the org where the data model exists. #### Usage guidelines The request
+ * must include: - `data_source_identifier`: the unique ID of the data model to
+ * retrieve instructions for If the request is successful, the API returns: -
+ * `nl_instructions_info`: an array of instruction objects, each containing: -
+ * `instructions`: the configured text instructions for AI processing -
+ * `scope`: the scope of the instruction — currently only `GLOBAL` is
+ * supported #### Instructions scope - **GLOBAL**: Instructions that apply globally across the
+ * system on the given data-model (currently only global instructions are supported) #### Error
+ * responses | Code | Description |
+ * |------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege, lacks
+ * view access on the data model, or the bearer token does not correspond to the org where the
+ * data model exists. | > ###### Note: > > - To use this API, the user needs at least
+ * view access on the data model, and must use the bearer token corresponding to the org where
+ * the data model exists. > - This endpoint is currently in Beta. Breaking changes may be
+ * introduced before the endpoint is made Generally Available. > - Available from version
+ * 10.15.0.cl and later. > - This endpoint requires Spotter — please contact ThoughtSpot
+ * Support to enable Spotter on your cluster. > - Use this API to review currently configured
* instructions before modifying them with `setNLInstructions`.
*
* @param getNLInstructionsRequest (required)
@@ -859,6 +1065,8 @@ public ApiResponse getNLInstructionsWithHttpInf
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -887,6 +1095,8 @@ public okhttp3.Call getNLInstructionsAsync(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -960,26 +1170,33 @@ private okhttp3.Call getRelevantQuestionsValidateBeforeCall(
}
/**
- * Version: 10.13.0.cl or later Breaks down a user-submitted query into a series of analytical
- * sub-questions using relevant contextual metadata. To use this API, the user must have at
- * least view-level access to the referenced metadata objects. #### Usage guidelines To
- * accurately generate relevant questions, the request must include at least one of the
- * following metadata identifiers within `metadata_context` :
- * `conversation_identifier`, `answer_identifiers`,
- * `liveboard_identifiers`, or `data_source_identifiers`. You can further
- * enhance the quality and precision of breakdown by providing additional `ai_context`
- * such as: - `content`: User provided content like text data, csv data as a string
- * message to provide context & potentially improve the quality of the response. -
- * `instructions`: User specific text instructions sent to AI system for processing
- * the query. Additional optional parameters include: - `limit_relevant_questions`:
- * Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. -
- * `bypass_cache`: If set to true, forces fresh computation instead of returning
- * cached results. If the API request is successful, ThoughtSpot returns a list of relevant
- * analytical queries, each aligned with the user's original question. Each returned
- * question includes the query string, along with the identifier and name of the corresponding
- * data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes
- * may be introduced before the endpoint is made Generally Available. > * This endpoint
- * requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ * Version: 10.13.0.cl or later Breaks down a natural language query into a series of smaller
+ * analytical sub-questions, each mapped to a relevant data source. Requires
+ * `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced
+ * metadata objects. #### Usage guidelines The request must include: - `query`: the
+ * natural language question to decompose into analytical sub-questions -
+ * `metadata_context`: at least one of the following context identifiers to guide
+ * question generation: - `conversation_identifier` — an existing conversation session
+ * ID - `answer_identifiers` — a list of Answer GUIDs -
+ * `liveboard_identifiers` — a list of Liveboard GUIDs -
+ * `data_source_identifiers` — a list of data source GUIDs Optional parameters for
+ * refining the output: - `ai_context`: additional context to improve response quality
+ * - `content` — supplementary text or CSV data as string input -
+ * `instructions` — custom text instructions for the AI system -
+ * `limit_relevant_questions`: maximum number of questions to return (default:
+ * `5`) - `bypass_cache`: if `true`, forces fresh computation
+ * instead of returning cached results If the request is successful, the API returns a list of
+ * relevant analytical questions, each containing: - `query`: the generated
+ * sub-question - `data_source_identifier`: the unique ID of the data source the
+ * question targets - `data_source_name`: the display name of the corresponding data
+ * source #### Error responses | Code | Description |
+ * |------|---------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view access to the referenced metadata objects. | > ###### Note: > * This
+ * endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made
+ * Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot
+ * support to enable Spotter on your cluster.
*
* @param getRelevantQuestionsRequest (required)
* @return EurekaGetRelevantQuestionsResponse
@@ -992,6 +1209,8 @@ private okhttp3.Call getRelevantQuestionsValidateBeforeCall(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -1003,26 +1222,33 @@ public EurekaGetRelevantQuestionsResponse getRelevantQuestions(
}
/**
- * Version: 10.13.0.cl or later Breaks down a user-submitted query into a series of analytical
- * sub-questions using relevant contextual metadata. To use this API, the user must have at
- * least view-level access to the referenced metadata objects. #### Usage guidelines To
- * accurately generate relevant questions, the request must include at least one of the
- * following metadata identifiers within `metadata_context` :
- * `conversation_identifier`, `answer_identifiers`,
- * `liveboard_identifiers`, or `data_source_identifiers`. You can further
- * enhance the quality and precision of breakdown by providing additional `ai_context`
- * such as: - `content`: User provided content like text data, csv data as a string
- * message to provide context & potentially improve the quality of the response. -
- * `instructions`: User specific text instructions sent to AI system for processing
- * the query. Additional optional parameters include: - `limit_relevant_questions`:
- * Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. -
- * `bypass_cache`: If set to true, forces fresh computation instead of returning
- * cached results. If the API request is successful, ThoughtSpot returns a list of relevant
- * analytical queries, each aligned with the user's original question. Each returned
- * question includes the query string, along with the identifier and name of the corresponding
- * data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes
- * may be introduced before the endpoint is made Generally Available. > * This endpoint
- * requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ * Version: 10.13.0.cl or later Breaks down a natural language query into a series of smaller
+ * analytical sub-questions, each mapped to a relevant data source. Requires
+ * `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced
+ * metadata objects. #### Usage guidelines The request must include: - `query`: the
+ * natural language question to decompose into analytical sub-questions -
+ * `metadata_context`: at least one of the following context identifiers to guide
+ * question generation: - `conversation_identifier` — an existing conversation session
+ * ID - `answer_identifiers` — a list of Answer GUIDs -
+ * `liveboard_identifiers` — a list of Liveboard GUIDs -
+ * `data_source_identifiers` — a list of data source GUIDs Optional parameters for
+ * refining the output: - `ai_context`: additional context to improve response quality
+ * - `content` — supplementary text or CSV data as string input -
+ * `instructions` — custom text instructions for the AI system -
+ * `limit_relevant_questions`: maximum number of questions to return (default:
+ * `5`) - `bypass_cache`: if `true`, forces fresh computation
+ * instead of returning cached results If the request is successful, the API returns a list of
+ * relevant analytical questions, each containing: - `query`: the generated
+ * sub-question - `data_source_identifier`: the unique ID of the data source the
+ * question targets - `data_source_name`: the display name of the corresponding data
+ * source #### Error responses | Code | Description |
+ * |------|---------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view access to the referenced metadata objects. | > ###### Note: > * This
+ * endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made
+ * Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot
+ * support to enable Spotter on your cluster.
*
* @param getRelevantQuestionsRequest (required)
* @return ApiResponse<EurekaGetRelevantQuestionsResponse>
@@ -1035,6 +1261,8 @@ public EurekaGetRelevantQuestionsResponse getRelevantQuestions(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -1047,26 +1275,33 @@ public ApiResponse getRelevantQuestionsWithH
}
/**
- * (asynchronously) Version: 10.13.0.cl or later Breaks down a user-submitted query into a
- * series of analytical sub-questions using relevant contextual metadata. To use this API, the
- * user must have at least view-level access to the referenced metadata objects. #### Usage
- * guidelines To accurately generate relevant questions, the request must include at least one
- * of the following metadata identifiers within `metadata_context` :
- * `conversation_identifier`, `answer_identifiers`,
- * `liveboard_identifiers`, or `data_source_identifiers`. You can further
- * enhance the quality and precision of breakdown by providing additional `ai_context`
- * such as: - `content`: User provided content like text data, csv data as a string
- * message to provide context & potentially improve the quality of the response. -
- * `instructions`: User specific text instructions sent to AI system for processing
- * the query. Additional optional parameters include: - `limit_relevant_questions`:
- * Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. -
- * `bypass_cache`: If set to true, forces fresh computation instead of returning
- * cached results. If the API request is successful, ThoughtSpot returns a list of relevant
- * analytical queries, each aligned with the user's original question. Each returned
- * question includes the query string, along with the identifier and name of the corresponding
- * data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes
- * may be introduced before the endpoint is made Generally Available. > * This endpoint
- * requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ * (asynchronously) Version: 10.13.0.cl or later Breaks down a natural language query into a
+ * series of smaller analytical sub-questions, each mapped to a relevant data source. Requires
+ * `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced
+ * metadata objects. #### Usage guidelines The request must include: - `query`: the
+ * natural language question to decompose into analytical sub-questions -
+ * `metadata_context`: at least one of the following context identifiers to guide
+ * question generation: - `conversation_identifier` — an existing conversation session
+ * ID - `answer_identifiers` — a list of Answer GUIDs -
+ * `liveboard_identifiers` — a list of Liveboard GUIDs -
+ * `data_source_identifiers` — a list of data source GUIDs Optional parameters for
+ * refining the output: - `ai_context`: additional context to improve response quality
+ * - `content` — supplementary text or CSV data as string input -
+ * `instructions` — custom text instructions for the AI system -
+ * `limit_relevant_questions`: maximum number of questions to return (default:
+ * `5`) - `bypass_cache`: if `true`, forces fresh computation
+ * instead of returning cached results If the request is successful, the API returns a list of
+ * relevant analytical questions, each containing: - `query`: the generated
+ * sub-question - `data_source_identifier`: the unique ID of the data source the
+ * question targets - `data_source_name`: the display name of the corresponding data
+ * source #### Error responses | Code | Description |
+ * |------|---------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view access to the referenced metadata objects. | > ###### Note: > * This
+ * endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made
+ * Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot
+ * support to enable Spotter on your cluster.
*
* @param getRelevantQuestionsRequest (required)
* @param _callback The callback to be executed when the API call finishes
@@ -1080,6 +1315,8 @@ public ApiResponse getRelevantQuestionsWithH
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -1108,6 +1345,8 @@ public okhttp3.Call getRelevantQuestionsAsync(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*
@@ -1187,7 +1426,32 @@ private okhttp3.Call queryGetDecomposedQueryValidateBeforeCall(
}
/**
- * Version: 10.7.0.cl or later
+ * Version: 10.7.0.cl or later **Deprecated** — Use `getRelevantQuestions` instead
+ * (available from 10.13.0.cl). Breaks down a topical or goal-oriented natural language question
+ * into smaller, actionable analytical sub-questions, each mapped to a relevant data source for
+ * independent execution. Requires `CAN_USE_SPOTTER` privilege and at least view-level
+ * access to the referenced metadata objects. #### Usage guidelines The request accepts the
+ * following parameters: - `nlsRequest`: contains the user `query` to
+ * decompose, along with optional `instructions` and `bypassCache` flag -
+ * `worksheetIds`: list of data source identifiers to scope the decomposition -
+ * `answerIds`: list of Answer GUIDs whose data guides the response -
+ * `liveboardIds`: list of Liveboard GUIDs whose data guides the response -
+ * `conversationId`: an existing conversation session ID for context continuity -
+ * `content`: supplementary text or CSV data to improve response quality -
+ * `maxDecomposedQueries`: maximum number of sub-questions to return (default:
+ * `5`) If the request is successful, the API returns a
+ * `decomposedQueryResponse` containing a list of `decomposedQueries`, each
+ * with: - `query`: the generated analytical sub-question - `worksheetId`:
+ * the unique ID of the data source the question targets - `worksheetName`: the
+ * display name of the corresponding data source #### Error responses | Code | Description |
+ * |------|---------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view access to the referenced metadata objects. | > ###### Note: > * This
+ * endpoint is deprecated since 10.13.0.cl. Use `getRelevantQuestions` for new
+ * integrations. > * This endpoint is currently in Beta. Breaking changes may be introduced
+ * before the endpoint is made Generally Available. > * This endpoint requires Spotter —
+ * please contact ThoughtSpot support to enable Spotter on your cluster.
*
* @param queryGetDecomposedQueryRequest (required)
* @return EurekaDecomposeQueryResponse
@@ -1200,6 +1464,8 @@ private okhttp3.Call queryGetDecomposedQueryValidateBeforeCall(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*
@@ -1214,7 +1480,32 @@ public EurekaDecomposeQueryResponse queryGetDecomposedQuery(
}
/**
- * Version: 10.7.0.cl or later
+ * Version: 10.7.0.cl or later **Deprecated** — Use `getRelevantQuestions` instead
+ * (available from 10.13.0.cl). Breaks down a topical or goal-oriented natural language question
+ * into smaller, actionable analytical sub-questions, each mapped to a relevant data source for
+ * independent execution. Requires `CAN_USE_SPOTTER` privilege and at least view-level
+ * access to the referenced metadata objects. #### Usage guidelines The request accepts the
+ * following parameters: - `nlsRequest`: contains the user `query` to
+ * decompose, along with optional `instructions` and `bypassCache` flag -
+ * `worksheetIds`: list of data source identifiers to scope the decomposition -
+ * `answerIds`: list of Answer GUIDs whose data guides the response -
+ * `liveboardIds`: list of Liveboard GUIDs whose data guides the response -
+ * `conversationId`: an existing conversation session ID for context continuity -
+ * `content`: supplementary text or CSV data to improve response quality -
+ * `maxDecomposedQueries`: maximum number of sub-questions to return (default:
+ * `5`) If the request is successful, the API returns a
+ * `decomposedQueryResponse` containing a list of `decomposedQueries`, each
+ * with: - `query`: the generated analytical sub-question - `worksheetId`:
+ * the unique ID of the data source the question targets - `worksheetName`: the
+ * display name of the corresponding data source #### Error responses | Code | Description |
+ * |------|---------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view access to the referenced metadata objects. | > ###### Note: > * This
+ * endpoint is deprecated since 10.13.0.cl. Use `getRelevantQuestions` for new
+ * integrations. > * This endpoint is currently in Beta. Breaking changes may be introduced
+ * before the endpoint is made Generally Available. > * This endpoint requires Spotter —
+ * please contact ThoughtSpot support to enable Spotter on your cluster.
*
* @param queryGetDecomposedQueryRequest (required)
* @return ApiResponse<EurekaDecomposeQueryResponse>
@@ -1227,6 +1518,8 @@ public EurekaDecomposeQueryResponse queryGetDecomposedQuery(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*
@@ -1242,7 +1535,32 @@ public ApiResponse queryGetDecomposedQueryWithHttp
}
/**
- * (asynchronously) Version: 10.7.0.cl or later
+ * (asynchronously) Version: 10.7.0.cl or later **Deprecated** — Use
+ * `getRelevantQuestions` instead (available from 10.13.0.cl). Breaks down a topical
+ * or goal-oriented natural language question into smaller, actionable analytical sub-questions,
+ * each mapped to a relevant data source for independent execution. Requires
+ * `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced
+ * metadata objects. #### Usage guidelines The request accepts the following parameters: -
+ * `nlsRequest`: contains the user `query` to decompose, along with optional
+ * `instructions` and `bypassCache` flag - `worksheetIds`: list of
+ * data source identifiers to scope the decomposition - `answerIds`: list of Answer
+ * GUIDs whose data guides the response - `liveboardIds`: list of Liveboard GUIDs
+ * whose data guides the response - `conversationId`: an existing conversation session
+ * ID for context continuity - `content`: supplementary text or CSV data to improve
+ * response quality - `maxDecomposedQueries`: maximum number of sub-questions to
+ * return (default: `5`) If the request is successful, the API returns a
+ * `decomposedQueryResponse` containing a list of `decomposedQueries`, each
+ * with: - `query`: the generated analytical sub-question - `worksheetId`:
+ * the unique ID of the data source the question targets - `worksheetName`: the
+ * display name of the corresponding data source #### Error responses | Code | Description |
+ * |------|---------------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks view access to the referenced metadata objects. | > ###### Note: > * This
+ * endpoint is deprecated since 10.13.0.cl. Use `getRelevantQuestions` for new
+ * integrations. > * This endpoint is currently in Beta. Breaking changes may be introduced
+ * before the endpoint is made Generally Available. > * This endpoint requires Spotter —
+ * please contact ThoughtSpot support to enable Spotter on your cluster.
*
* @param queryGetDecomposedQueryRequest (required)
* @param _callback The callback to be executed when the API call finishes
@@ -1256,6 +1574,8 @@ public ApiResponse queryGetDecomposedQueryWithHttp
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*
@@ -1290,6 +1610,8 @@ public okhttp3.Call queryGetDecomposedQueryAsync(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -1378,19 +1700,28 @@ private okhttp3.Call sendAgentMessageValidateBeforeCall(
}
/**
- * Version: 10.15.0.cl or later This API allows users to initiate or continue an agent (Spotter)
- * conversation by submitting one or more natural language messages. To use this API, the user
- * must have access to the relevant conversational session (via conversation_identifier) and
- * submit at least one message. #### Usage guidelines To initiate or continue a conversation,
- * the request must include: - `conversation_identifier`: a unique session ID for
- * continuity and message tracking - `messages`: an array of one or more text
- * messages, each with a value and type The API returns a array of object with a type, message,
- * and metadata. - `type`: Type of the message — text, answer, or error. -
- * `message`: Main content of the response. - `metadata`: Additional info
- * depending on the message type. > ###### Note: > * This endpoint is currently in Beta.
- * Breaking changes may be introduced before the endpoint is made Generally Available. > *
- * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your
- * cluster.
+ * Version: 10.15.0.cl or later **Deprecated** — Use `sendAgentConversationMessage`
+ * instead. Send natural language messages to an existing Spotter agent conversation and returns
+ * the complete response synchronously. Requires `CAN_USE_SPOTTER` privilege and
+ * access to the metadata object associated with the conversation. The user must have access to
+ * the conversation session referenced by `conversation_identifier`. A conversation
+ * must first be created using the `createAgentConversation` API. #### Usage
+ * guidelines The request must include: - `conversation_identifier`: the unique
+ * session ID returned by `createAgentConversation`, used for context continuity and
+ * message tracking - `messages`: an array of one or more text messages to send to the
+ * agent The API returns an array of response objects, each containing: - `type`: the
+ * kind of response — `text`, `answer`, or `error` -
+ * `message`: the main content of the response - `metadata`: additional
+ * information depending on the message type (e.g., answer metadata includes analytics and
+ * visualization details) #### Error responses | Code | Description |
+ * |------|----------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks permission on the referenced conversation. | > ###### Note: > > - This
+ * endpoint is deprecated. Use `sendAgentConversationMessage` for new integrations.
+ * > - This endpoint is currently in Beta. Breaking changes may be introduced before the
+ * endpoint is made Generally Available. > - This endpoint requires Spotter - please contact
+ * ThoughtSpot support to enable Spotter on your cluster.
*
* @param conversationIdentifier Unique identifier for the conversation (used to track context)
* (required)
@@ -1405,6 +1736,8 @@ private okhttp3.Call sendAgentMessageValidateBeforeCall(
*
200
Common successful response
-
*
201
Common error response
-
*
400
Operation failed
-
+ *
401
Unauthorized access.
-
+ *
403
Forbidden access.
-
*
500
Operation failed
-
*
*/
@@ -1417,19 +1750,28 @@ public Object sendAgentMessage(
}
/**
- * Version: 10.15.0.cl or later This API allows users to initiate or continue an agent (Spotter)
- * conversation by submitting one or more natural language messages. To use this API, the user
- * must have access to the relevant conversational session (via conversation_identifier) and
- * submit at least one message. #### Usage guidelines To initiate or continue a conversation,
- * the request must include: - `conversation_identifier`: a unique session ID for
- * continuity and message tracking - `messages`: an array of one or more text
- * messages, each with a value and type The API returns a array of object with a type, message,
- * and metadata. - `type`: Type of the message — text, answer, or error. -
- * `message`: Main content of the response. - `metadata`: Additional info
- * depending on the message type. > ###### Note: > * This endpoint is currently in Beta.
- * Breaking changes may be introduced before the endpoint is made Generally Available. > *
- * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your
- * cluster.
+ * Version: 10.15.0.cl or later **Deprecated** — Use `sendAgentConversationMessage`
+ * instead. Send natural language messages to an existing Spotter agent conversation and returns
+ * the complete response synchronously. Requires `CAN_USE_SPOTTER` privilege and
+ * access to the metadata object associated with the conversation. The user must have access to
+ * the conversation session referenced by `conversation_identifier`. A conversation
+ * must first be created using the `createAgentConversation` API. #### Usage
+ * guidelines The request must include: - `conversation_identifier`: the unique
+ * session ID returned by `createAgentConversation`, used for context continuity and
+ * message tracking - `messages`: an array of one or more text messages to send to the
+ * agent The API returns an array of response objects, each containing: - `type`: the
+ * kind of response — `text`, `answer`, or `error` -
+ * `message`: the main content of the response - `metadata`: additional
+ * information depending on the message type (e.g., answer metadata includes analytics and
+ * visualization details) #### Error responses | Code | Description |
+ * |------|----------------------------------------------------------------------------------------------------------------------------------|
+ * | 401 | Unauthorized — authentication token is missing, expired, or invalid. | | 403 |
+ * Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or
+ * lacks permission on the referenced conversation. | > ###### Note: > > - This
+ * endpoint is deprecated. Use `sendAgentConversationMessage` for new integrations.
+ * > - This endpoint is currently in Beta. Breaking changes may be introduced before the
+ * endpoint is made Generally Available. > - This endpoint requires Spotter - please contact
+ * ThoughtSpot support to enable Spotter on your cluster.
*
* @param conversationIdentifier Unique identifier for the conversation (used to track context)
* (required)
@@ -1444,6 +1786,8 @@ public Object sendAgentMessage(
*