diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 0b3f6929e..9b8efcb82 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -61,14 +61,6 @@ ], "description": "Roles for version 10.13.0.cl" }, - { - "name": "26.9.0.cl", - "id": "26.9.0.cl", - "tags": [ - "26.9.0.cl" - ], - "description": "Roles for version 26.9.0.cl" - }, { "name": "10.7.0.cl", "id": "10.7.0.cl", @@ -213,6 +205,14 @@ ], "description": "Roles for version 26.3.0.cl" }, + { + "name": "26.9.0.cl", + "id": "26.9.0.cl", + "tags": [ + "26.9.0.cl" + ], + "description": "Roles for version 26.9.0.cl" + }, { "name": "10.14.0.cl", "id": "10.14.0.cl", @@ -1082,279 +1082,6 @@ } } }, - "/api/rest/2.0/ai/agent/conversations/{conversation_identifier}/get-shared-content": { - "get": { - "operationId": "getSharedContent", - "description": "\nReturns the full read-only view of a shared conversation, including ordered\nmessages and data source metadata. Accessible by the conversation owner and\nany principal (user or group) that has been granted access.\nRequires `CAN_USE_SPOTTER` privilege.
Version: 26.9.0.cl or later\n\nReturns the full read-only view of a shared conversation, including ordered messages and data source metadata. Accessible by the conversation owner and any principal (user or group) that has been granted access via `shareConversation`.\n\nUse this endpoint to render a shared conversation in a UI or to retrieve its content for post-processing. The full answer payload is not embedded in messages — fetch it separately via `loadAnswer` using the `shared_conversation_id` from this response as the `conversation_identifier` parameter, along with the `answer_id` from each `answer` response item.\n\n> **Important**: `shared_conversation_id` is not the same as `conversation_id`. It identifies the shared snapshot, which is a separate internal object from the source conversation. You must use the `shared_conversation_id` value — not `conversation_id` — as the `conversation_identifier` parameter when calling `loadAnswer` to hydrate answers from a shared view.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `conversation_identifier` _(query parameter)_: the unique ID of the source conversation.\n\n#### Response fields\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `conversation_id` | `String` | Echoes the request parameter. |\n| `shared_conversation_id` | `String` | Identifier for the shared snapshot. **This is not the same as `conversation_id`.** Pass this value as the `conversation_identifier` parameter in `loadAnswer` calls. It changes each time the snapshot is refreshed via `shareConversation` with `refresh_shared_content: true` — re-fetch this response to get the current value before calling `loadAnswer`. |\n| `conversation_title` | `String` | Display title of the conversation. `null` if no title was set. |\n| `data_sources` | `DataSourceEntry[]` | Data sources used by the conversation, each with an `id` and display `name`. |\n| `messages` | `ConversationMessage[]` | Ordered conversation messages, oldest to newest. Same structure as returned by `getConversation`. Empty when the conversation has no messages. |\n| `code_execution_files` | `CodeExecutionFileMetadata[]` | Sanitized metadata for files generated by the code-execution tool. Empty when there are none. |\n\n#### DataSourceEntry fields\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | `String` | Unique identifier of the data source. |\n| `name` | `String` | Display name of the data source. |\n\n#### CodeExecutionFileMetadata fields\n\nEach entry in the `code_execution_files` array contains:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `file_id` | `String` | Unique identifier of the file. |\n| `display_name` | `String` | Human-readable file name. |\n| `file_type` | `String` | File type such as `csv`, `pdf`, or `png`. |\n| `created_time_in_millis` | `Long` | Milliseconds since Unix epoch when the file was created. |\n| `expired` | `Boolean` | When `true`, the underlying file is no longer retrievable from code-execution storage; UIs should disable download and preview. |\n\n#### Loading answer payloads\n\nEach `answer` response item in `messages[].response_items` contains an `answer_id` field. To retrieve the full answer payload (TML tokens, visualization metadata, chart config), call `loadAnswer` with:\n\n- `conversation_identifier`: the `shared_conversation_id` from **this** response (not `conversation_id`)\n- `answer_identifier`: the `answer_id` from the `answer` item\n\nIf the snapshot has been refreshed since you last called `getSharedContent`, the `shared_conversation_id` will have changed. Always use the `shared_conversation_id` from the most recent `getSharedContent` response; stale values return 404.\n\n#### Example request\n\n```bash\nGET /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/get-shared-content\n```\n\n#### Example response\n\n```json\n{\n \"conversation_id\": \"conv-abc-123\",\n \"shared_conversation_id\": \"snap-xyz-456\",\n \"conversation_title\": \"Sales by Region Q1\",\n \"data_sources\": [{ \"id\": \"ds-001\", \"name\": \"Retail Sales\" }],\n \"messages\": [\n {\n \"message_id\": \"node-u-01\",\n \"timestamp_in_millis\": 1744000000000,\n \"user_prompt\": {\n \"message\": {\n \"message_id\": \"msg-u-01\",\n \"content\": \"Show me revenue by region.\"\n },\n \"attachments\": []\n },\n \"response_items\": [\n {\n \"type\": \"tool_call\",\n \"tool_call_id\": \"toolu-01\",\n \"tool_name\": \"search_datasets\",\n \"step_title\": \"Searching datasets\",\n \"arguments\": { \"query\": \"revenue by region\" },\n \"timestamp_in_millis\": 1744000001000,\n \"is_thinking\": false\n },\n {\n \"type\": \"answer\",\n \"answer_id\": \"ans-01\",\n \"tool_call_id\": \"toolu-02\",\n \"tool_name\": \"fetch_and_visualize\",\n \"step_title\": \"Visualizing\",\n \"timestamp_in_millis\": 1744000004000,\n \"is_thinking\": false\n },\n {\n \"type\": \"text\",\n \"content\": \"Revenue is highest in APAC.\",\n \"content_type\": \"TEXT_MARKDOWN\",\n \"timestamp_in_millis\": 1744000005000,\n \"is_thinking\": false,\n \"step_title\": null,\n \"file_reference\": null\n }\n ]\n }\n ],\n \"code_execution_files\": [\n {\n \"file_id\": \"revenue_by_region.csv\",\n \"display_name\": \"revenue_by_region.csv\",\n \"file_type\": \"csv\",\n \"created_time_in_millis\": 1744027200000,\n \"expired\": false\n }\n ]\n}\n```\n\nFor the `ConversationMessage` field structure, see `getConversation`.\n\n#### Error responses\n\n| Code | Description |\n| --- | --- |\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the caller is neither the conversation owner nor a principal with access, or does not have `CAN_USE_SPOTTER` privilege. |\n| 404 | Not Found — no active shared view exists for the given conversation identifier. |\n\n> ###### Note:\n>\n> - The shared view is a point-in-time copy of the conversation. It may not reflect edits made after sharing. Check `is_shared_content_outdated` via `getShareInfo` and use `shareConversation` with `refresh_shared_content: true` to update.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\nVersion: 26.9.0.cl or later\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "AI", - "26.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "conversation_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique identifier of the source conversation." - } - ], - "responses": { - "200": { - "description": "Common successful response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SharedConversationResponse" - }, - "examples": { - "example_1": { - "summary": "Shared conversation with one message and an answer", - "value": { - "conversation_id": "conv-abc-123", - "shared_conversation_id": "snap-xyz-456", - "conversation_title": "Sales by Region Q1", - "data_sources": [ - { - "id": "ds-001", - "name": "Retail Sales" - } - ], - "messages": [ - { - "message_id": "node-u-01", - "timestamp_in_millis": 1744000000000, - "user_prompt": { - "message": { - "message_id": "msg-u-01", - "content": "Show me revenue by region." - }, - "attachments": [] - }, - "response_items": [ - { - "type": "answer", - "answer_id": "ans-01", - "tool_call_id": "toolu-01", - "tool_name": "fetch_and_visualize", - "step_title": "Visualizing", - "timestamp_in_millis": 1744000004000, - "is_thinking": false - }, - { - "type": "text", - "content": "Revenue is highest in APAC at $4.2M.", - "content_type": "TEXT_MARKDOWN", - "timestamp_in_millis": 1744000005000, - "is_thinking": false, - "step_title": null, - "file_reference": null - } - ] - } - ], - "code_execution_files": [ - { - "file_id": "revenue_by_region.csv", - "display_name": "revenue_by_region.csv", - "file_type": "csv", - "created_time_in_millis": 1744027200000, - "expired": false - } - ] - } - } - } - } - } - }, - "201": { - "description": "Common error response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SharedConversationResponse" - } - } - } - }, - "400": { - "description": "Operation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Operation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/ai/agent/conversations/{conversation_identifier}/get-share-info": { - "get": { - "operationId": "getShareInfo", - "description": "\nReturns the current share state for a conversation the caller owns: whether\nthe shared view is outdated relative to the latest conversation content, and\nthe list of principals that currently have access.\nRequires `CAN_USE_SPOTTER` privilege and ownership of the specified conversation.
Version: 26.9.0.cl or later\n\nReturns the current share state for a conversation the caller owns: whether the shared view reflects the latest conversation content, and the list of principals that currently have access.\n\nUse this endpoint to render a share management UI, audit who has access to a conversation, or determine whether the shared view needs to be refreshed before sending a link.\n\nRequires ownership of the specified conversation.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `conversation_identifier` _(query parameter)_: the unique ID of the conversation, as returned by `createAgentConversation` or `getConversationList`.\n\n#### Response fields\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `conversation_id` | `String` | Echoes the request parameter. |\n| `is_shared_content_outdated` | `Boolean` | `true` when the shared view was generated before the last edit to the conversation and does not reflect the latest content. `false` when the shared view is current. `null` when the conversation has never been shared. |\n| `principals` | `ConversationPrincipalInfo[]` | List of principals with access. Empty when no access has been granted. The conversation owner is never included. |\n\n#### ConversationPrincipalInfo fields\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | `String` | Unique identifier of the user or group. |\n| `type` | `Principals` | `USER` for individual users, `USER_GROUP` for groups. |\n| `display_name` | `String` | Display name as shown in the ThoughtSpot UI. |\n| `name` | `String` | Internal name of the user or group. |\n| `permission` | `String` | Access level. Always `READ_ONLY` for shared conversations. |\n\n#### Example request\n\n```bash\nGET /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/get-share-info\n```\n\n#### Example response — conversation shared and current\n\n```json\n{\n \"conversation_id\": \"conv-abc-123\",\n \"is_shared_content_outdated\": false,\n \"principals\": [\n {\n \"id\": \"user-001\",\n \"type\": \"USER\",\n \"display_name\": \"Alice Example\",\n \"name\": \"alice.example\",\n \"permission\": \"READ_ONLY\"\n },\n {\n \"id\": \"group-001\",\n \"type\": \"USER_GROUP\",\n \"display_name\": \"Sales Team\",\n \"name\": \"sales-team\",\n \"permission\": \"READ_ONLY\"\n }\n ]\n}\n```\n\n#### Example response — conversation never shared\n\n```json\n{\n \"conversation_id\": \"conv-abc-123\",\n \"is_shared_content_outdated\": null,\n \"principals\": []\n}\n```\n\n#### Example response — shared view outdated\n\n```json\n{\n \"conversation_id\": \"conv-abc-123\",\n \"is_shared_content_outdated\": true,\n \"principals\": [\n {\n \"id\": \"user-001\",\n \"type\": \"USER\",\n \"display_name\": \"Alice Example\",\n \"name\": \"alice.example\",\n \"permission\": \"READ_ONLY\"\n }\n ]\n}\n```\n\nWhen `is_shared_content_outdated` is `true`, call `shareConversation` with `refresh_shared_content: true` to update the shared view with the latest conversation content.\n\n#### Error responses\n\n| Code | Description |\n| --- | --- |\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the caller does not own the specified conversation, or does not have `CAN_USE_SPOTTER` privilege. |\n| 404 | Not Found — no conversation exists with the given identifier for the authenticated user. |\n\n> ###### Note:\n>\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\nVersion: 26.9.0.cl or later\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "AI", - "26.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "conversation_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique identifier of the conversation." - } - ], - "responses": { - "200": { - "description": "Common successful response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConversationShareStatusResponse" - }, - "examples": { - "example_1": { - "summary": "Conversation shared with two principals, content is current", - "value": { - "conversation_id": "conv-abc-123", - "is_shared_content_outdated": false, - "principals": [ - { - "id": "user-001", - "type": "USER", - "display_name": "Alice Example", - "name": "alice.example", - "permission": "READ_ONLY" - }, - { - "id": "group-001", - "type": "USER_GROUP", - "display_name": "Sales Team", - "name": "sales-team", - "permission": "READ_ONLY" - } - ] - } - }, - "example_2": { - "summary": "Conversation never shared", - "value": { - "conversation_id": "conv-abc-123", - "is_shared_content_outdated": null, - "principals": [] - } - }, - "example_3": { - "summary": "Shared view is outdated — conversation was edited after sharing", - "value": { - "conversation_id": "conv-abc-123", - "is_shared_content_outdated": true, - "principals": [ - { - "id": "user-001", - "type": "USER", - "display_name": "Alice Example", - "name": "alice.example", - "permission": "READ_ONLY" - } - ] - } - } - } - } - } - }, - "201": { - "description": "Common error response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConversationShareStatusResponse" - } - } - } - }, - "400": { - "description": "Operation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Operation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/ai/memory/import": { "post": { "operationId": "importMemory", @@ -2378,82 +2105,6 @@ } } }, - "/api/rest/2.0/ai/agent/conversations/{conversation_identifier}/share": { - "post": { - "operationId": "shareConversation", - "description": "\nGrants or revokes access to a shared conversation for one or more principals\n(users or groups). When principals are added, a read-only shared view of the\nconversation is created from its current state. Use `refresh_shared_content`\nto regenerate the shared view with the latest conversation content.\nRequires `CAN_USE_SPOTTER` privilege and ownership of the specified conversation.
Version: 26.9.0.cl or later\n\nGrants or revokes access to a shared conversation for one or more principals (users or groups). When principals are added, a read-only shared view of the conversation is created from its current state. The shared view is a point-in-time copy — use `refresh_shared_content` to regenerate it with the latest conversation content.\n\nRequires ownership of the specified conversation. Only the user who created the conversation can manage its share access.\n\n#### Usage guidelines\n\nThe conversation to share is identified by the `{conversation_identifier}` URL path parameter. At least one of the following must be true: `grant` is non-empty, `revoke` is non-empty, or `refresh_shared_content` is `true`. A principal cannot appear in both lists in the same request.\n\n| Field | Type | Default | Description |\n| --- | --- | --- | --- |\n| `refresh_shared_content` | `Boolean` | `false` | When `true`, always regenerates the shared view from the latest conversation state, even if a shared view already exists. When `false`, reuses the existing shared view. |\n| `grant` | `PrincipalRefInput[]` | `[]` | Principals to grant read-only access. |\n| `revoke` | `PrincipalRefInput[]` | `[]` | Principals to revoke access from. |\n\n#### PrincipalRefInput fields\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `principal_identifier` | `String` | Unique identifier of the user or group. |\n| `principal_type` | `Principals` | `USER` for individual users, `USER_GROUP` for groups. |\n\n#### Example request — granting access\n\n```bash\nPOST /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/share\n```\n\n```json\n{\n \"refresh_shared_content\": false,\n \"grant\": [\n { \"principal_identifier\": \"user-001\", \"principal_type\": \"USER\" },\n { \"principal_identifier\": \"group-001\", \"principal_type\": \"USER_GROUP\" }\n ],\n \"revoke\": []\n}\n```\n\n#### Example request — revoking access\n\n```json\n{\n \"refresh_shared_content\": false,\n \"grant\": [],\n \"revoke\": [\n { \"principal_identifier\": \"user-001\", \"principal_type\": \"USER\" }\n ]\n}\n```\n\nSet `refresh_shared_content: true` with empty `grant` and `revoke` to regenerate the shared snapshot for existing recipients without changing access. Combine with non-empty `grant` or `revoke` to update access and refresh the snapshot in a single call.\n\n#### Error responses\n\n| Code | Description |\n| --- | --- |\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the caller does not own the specified conversation, or does not have `CAN_USE_SPOTTER` privilege. |\n| 404 | Not Found — no conversation exists with the given identifier for the authenticated user. |\n| 422 | Unprocessable — `refresh_shared_content` is `false` and both `grant` and `revoke` are empty, or a principal appears in both lists. |\n\n> ###### Note:\n>\n> - The shared view is a read-only snapshot of the conversation at the time of sharing. Recipients cannot send messages or modify the conversation.\n> - Use `getShareInfo` to check whether the shared view is outdated relative to the current conversation state.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\nVersion: 26.9.0.cl or later\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "AI", - "26.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ShareConversationRequest" - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "conversation_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique identifier of the conversation to share." - } - ], - "responses": { - "204": { - "description": "Successfully updated the share access for the conversation." - }, - "400": { - "description": "Operation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Operation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/ai/answer/create": { "post": { "operationId": "singleAnswer", @@ -4390,7 +4041,7 @@ "/api/rest/2.0/collections/search": { "post": { "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", + "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, names, or custom `obj_id` values\n* **include_metadata**: When set to `true`, includes the metadata objects within each collection in the response\n\n**NOTE**: In addition to the GUID and name, `collection_identifiers` accepts a custom `obj_id` value if one is configured for the collection. The response also includes the `obj_id` field for each collection that has one set.\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": [ "Collections", "26.4.0.cl" @@ -5291,7 +4942,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\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- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only.\n - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only.\n - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only.\n - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only.\n - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\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- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only.\n - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only.\n - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only.\n - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only.\n - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: In addition to the connection GUID and name, the `identifier` field on each entry in `connections` accepts a custom `obj_id` value if one is configured for the connection. The response also includes the `obj_id` field for each connection that has one set.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -5966,7 +5617,7 @@ "/api/rest/2.0/customization/custom-actions/search": { "post": { "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n**NOTE**: In addition to the GUID and name, `custom_action_identifier` accepts a custom `obj_id` value if one is configured for the custom action. The response also includes the `obj_id` field for each custom action that has one set.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -7990,7 +7641,7 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of user group objects from the ThoughtSpot system.\n\nTo get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of user group objects from the ThoughtSpot system.\n\nTo get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n**NOTE**: In addition to the GUID and name, `group_identifier` accepts a custom `obj_id` value if one is configured for the group. The response also includes the `obj_id` field for each group that has one set.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -9873,7 +9524,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n- To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true.\n- For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1.\n- To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `subtypes`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\n- `include_only_published_objects`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n- To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true.\n- For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1.\n- To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false.\n\n**NOTE**: In addition to the GUID and name+type, each entry in `metadata` accepts a custom `obj_id` in the `obj_identifier` field for the following object types: `LIVEBOARD`, `ANSWER`, `LOGICAL_TABLE`, `LOGICAL_COLUMN`, `CONNECTION`, `USER_GROUP`, `COLLECTION`. When `obj_identifier` is provided, the `type` field is required for disambiguation. The response also includes the `metadata_obj_id` field for each object that has one set.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `subtypes`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\n- `include_only_published_objects`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -10746,7 +10397,7 @@ "/api/rest/2.0/roles/search": { "post": { "operationId": "searchRoles", - "description": "\n Version: 9.5.0.cl or later\n\nGets a list of Role objects from the ThoughtSpot system.\n\nAvailable if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required.\n\nTo get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.5.0.cl or later\n\nGets a list of Role objects from the ThoughtSpot system.\n\nAvailable if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required.\n\nTo get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status.\n\n**NOTE**: In addition to the GUID and name, `role_identifiers` accepts a custom `obj_id` value if one is configured for the role. The response also includes the `obj_id` field for each role that has one set.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Roles", "9.5.0.cl" @@ -19626,6 +19277,11 @@ "visibility" ], "properties": { + "obj_id": { + "type": "string", + "description": "Custom object identifier (obj_id) of the group, if one is set.
Version: 26.9.0.cl or later", + "nullable": true + }, "author_id": { "type": "string", "description": "The unique identifier of the object", @@ -21334,6 +20990,11 @@ "type": "string", "description": "Name of the connection." }, + "obj_id": { + "type": "string", + "description": "Custom object identifier (obj_id) of the connection, if one is set.
Version: 26.9.0.cl or later", + "nullable": true + }, "description": { "type": "string", "description": "Description of the connection.", @@ -21553,6 +21214,11 @@ "type": "string", "description": "Name of the role" }, + "obj_id": { + "type": "string", + "description": "Custom object identifier (obj_id) of the role, if one is set.
Version: 26.9.0.cl or later", + "nullable": true + }, "description": { "type": "string", "description": "Description of the role" @@ -21738,6 +21404,11 @@ "type": "string", "description": "Unique Id of the custom action." }, + "obj_id": { + "type": "string", + "description": "Custom object identifier (obj_id) of the custom action, if one is set.
Version: 26.9.0.cl or later", + "nullable": true + }, "metadata_association": { "type": "array", "items": { @@ -23094,121 +22765,6 @@ } } }, - "ConversationShareStatusResponse": { - "type": "object", - "required": [ - "conversation_id", - "principals" - ], - "properties": { - "conversation_id": { - "type": "string", - "description": "Unique identifier of the source conversation." - }, - "is_shared_content_outdated": { - "type": "boolean", - "description": "`true` when the shared view was generated before the last edit to the\nconversation and does not reflect the latest content. `null` when the\nconversation has never been shared.", - "nullable": true - }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConversationPrincipalInfo" - }, - "description": "List of principals that currently have access to this shared conversation.\nEmpty when no principals have been granted access." - } - }, - "description": "Response returned by getShareInfo." - }, - "ConversationPrincipalInfo": { - "type": "object", - "required": [ - "id", - "type", - "display_name", - "name", - "permission" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user or group." - }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Whether the principal is an individual user or a group." - }, - "display_name": { - "type": "string", - "description": "Display name of the principal as shown in the UI." - }, - "name": { - "type": "string", - "description": "Internal name of the principal." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Access level granted to the principal. Always `READ_ONLY` for shared conversations." - } - }, - "description": "A principal that has been granted access to a shared conversation." - }, - "SharedConversationResponse": { - "type": "object", - "required": [ - "conversation_id", - "shared_conversation_id", - "data_sources", - "messages", - "code_execution_files" - ], - "properties": { - "conversation_id": { - "type": "string", - "description": "Unique identifier of the source conversation (echoes the request parameter)." - }, - "shared_conversation_id": { - "type": "string", - "description": "Identifier for the shared view. Use this as `conversation_identifier` in\nfollow-up `loadAnswer` calls to hydrate answer items in the messages." - }, - "conversation_title": { - "type": "string", - "description": "Display title of the conversation.", - "nullable": true - }, - "data_sources": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataSourceEntry" - }, - "description": "Data sources used by the conversation, each with an identifier and display name." - }, - "messages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConversationMessage" - }, - "description": "Ordered conversation messages, oldest to newest. Same structure as the\n`messages` field returned by `getConversation`. Empty array when the\nconversation has no messages; never null." - }, - "code_execution_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CodeExecutionFileMetadata" - }, - "description": "Sanitized metadata for files generated by the code-execution tool during\nthis conversation. Empty when there are no such files." - } - }, - "description": "Response returned by getSharedContent. Contains the full read-only view\nof the shared conversation including messages and data source metadata." - }, "RiseGQLArgWrapper": { "type": "object", "required": [ @@ -24207,6 +23763,11 @@ "type": "string", "description": "Name of the collection." }, + "obj_id": { + "type": "string", + "description": "Custom object identifier (obj_id) of the collection, if one is set.
Version: 26.9.0.cl or later", + "nullable": true + }, "description": { "type": "string", "description": "Description of the collection.", @@ -28552,28 +28113,6 @@ } } }, - "PrincipalRefInput": { - "type": "object", - "required": [ - "principal_identifier", - "principal_type" - ], - "properties": { - "principal_identifier": { - "type": "string", - "description": "Unique identifier of the user or group." - }, - "principal_type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Whether the principal is an individual user or a group." - } - }, - "description": "Input reference to a principal (user or group) used when granting or revoking\naccess to a shared resource." - }, "eureka_ImportMemoryResponse": { "type": "object", "required": [ @@ -29124,14 +28663,6 @@ "MEASURE" ], "description": "Semantic role of the column in ThoughtSpot. Use ATTRIBUTE for\ndimensional data such as text, dates, and identifiers, and\nMEASURE for numeric or aggregatable values." - }, - "allowed_values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of permitted values for the column. When provided,\ndata written to this column is restricted to these values. Omit\nor leave empty to allow any value supported by the data type.
Version: 26.9.0.cl or later", - "nullable": true } }, "description": "Schema definition for a single input column." @@ -30253,37 +29784,6 @@ "nl_instructions_info" ] }, - "ShareConversationRequest": { - "type": "object", - "properties": { - "refresh_shared_content": { - "description": "When `true`, always regenerates the shared view from the latest conversation\nstate, even if one already exists. When `false` (default), reuses the\nexisting shared view.", - "default": false, - "type": "boolean", - "nullable": true - }, - "grant": { - "description": "Principals to grant read-only access to the conversation.", - "default": [], - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalRefInput" - } - }, - "revoke": { - "description": "Principals to revoke access from the conversation.", - "default": [], - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalRefInput" - } - } - }, - "required": [ - "grant", - "revoke" - ] - }, "SingleAnswerRequest": { "type": "object", "properties": { @@ -37309,4 +36809,4 @@ } } ] -} \ No newline at end of file +}