diff --git a/api-playground/APIMATIC-BUILD.json b/api-playground/APIMATIC-BUILD.json
index fc9c6197b..7946cca52 100644
--- a/api-playground/APIMATIC-BUILD.json
+++ b/api-playground/APIMATIC-BUILD.json
@@ -3,7 +3,7 @@
"buildFileVersion": "1.0",
"generatePortal": {
"useHostedPortalScript": false,
- "filterByRole": ["9.0.0.cl", "9.2.0.cl", "9.4.0.cl", "9.5.0.cl", "9.6.0.cl", "9.7.0.cl", "9.9.0.cl","9.12.0.cl","10.1.0.cl", "10.3.0.cl", "10.4.0.cl", "10.6.0.cl", "10.7.0.cl", "10.8.0.cl", "10.9.0.cl", "10.10.0.cl", "10.12.0.cl", "10.13.0.cl"],
+ "filterByRole": ["9.0.0.cl", "9.2.0.cl", "9.4.0.cl", "9.5.0.cl", "9.6.0.cl", "9.7.0.cl", "9.9.0.cl","9.12.0.cl","10.1.0.cl", "10.3.0.cl", "10.4.0.cl", "10.6.0.cl", "10.7.0.cl", "10.8.0.cl", "10.9.0.cl", "10.10.0.cl", "10.12.0.cl", "10.13.0.cl", "10.14.0.cl"],
"pageTitle": "ThoughtSpot Public Rest APIs",
"languageConfig": {
"http": {}
@@ -84,3 +84,4 @@
}
}
+
diff --git a/api-playground/README.md b/api-playground/README.md
index 5647be40f..9abe51ef9 100644
--- a/api-playground/README.md
+++ b/api-playground/README.md
@@ -1,6 +1,19 @@
## Background
The Rest API playground is generated using APIMatic's [portal generation API](https://portal-api-docs.apimatic.io/#/http/getting-started/overview-apimatic-portal-generation) and deployed directly on Vercel
+## Hiding Fields
+
+To hide specific fields from the API playground UI:
+
+Add configuration to `api-playground-config.json`:
+```json
+{
+ "hideApiFields": [
+ { "operationId": "APIOperantionId", "fields": ["field.refSchemaField"] }
+ ]
+}
+```
+
## Local development
Prepare the build folder
diff --git a/api-playground/api-playground-config.json b/api-playground/api-playground-config.json
new file mode 100644
index 000000000..71827750c
--- /dev/null
+++ b/api-playground/api-playground-config.json
@@ -0,0 +1,6 @@
+{
+ "hideApiFields": [
+ { "operationId": "getFullAccessToken", "fields": ["user_parameters"] },
+ { "operationId": "getObjectAccessToken", "fields": ["user_parameters"] }
+ ]
+}
\ No newline at end of file
diff --git a/api-playground/build.sh b/api-playground/build.sh
index ae092c53b..8b34a1ad7 100644
--- a/api-playground/build.sh
+++ b/api-playground/build.sh
@@ -7,6 +7,10 @@ mkdir $PWD/build $PWD/spec
# prepare spec
cp ../api-spec/* spec/
+if [ -f $PWD/processSpec.js ]; then
+ npx node processSpec.js
+fi
+
# native zip and unzip unavailable
npx bestzip $PWD/build/portal-input.zip .
diff --git a/api-playground/processSpec.js b/api-playground/processSpec.js
new file mode 100644
index 000000000..0ce7ba7c6
--- /dev/null
+++ b/api-playground/processSpec.js
@@ -0,0 +1,171 @@
+const fs = require('fs');
+
+const SPEC_PATH = './spec/openapiSpecv3-2_0.json';
+const CONFIG_PATH = './api-playground-config.json';
+
+function isObject(value) {
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
+}
+
+//Resolves a JSON reference pointer (e.g., "#/components/schemas/MySchema") to the actual object in the spec.
+function resolveRef(root, ref) {
+ if (typeof ref !== 'string' || !ref.startsWith('#/')) return null;
+ const parts = ref.slice(2).split('/').map((p) => p.replace(/~1/g, '/').replace(/~0/g, '~'));
+ let node = root;
+ for (const part of parts) {
+ if (!isObject(node) || !(part in node)) return null;
+ node = node[part];
+ }
+ return node;
+}
+
+//Recursively traverses a schema and removes the specified field.
+function hideFieldInSchema(root, schemaNode, fieldPathParts) {
+ if (!isObject(schemaNode)) return false;
+
+ if (schemaNode.$ref && typeof schemaNode.$ref === 'string') {
+ const target = resolveRef(root, schemaNode.$ref);
+ if (isObject(target)) {
+ return hideFieldInSchema(root, target, fieldPathParts);
+ }
+ return false;
+ }
+
+ if (isObject(schemaNode.items)) {
+ if (hideFieldInSchema(root, schemaNode.items, fieldPathParts)) return true;
+ }
+
+ let modified = false;
+ for (const keyword of ['allOf', 'oneOf', 'anyOf']) {
+ const variants = schemaNode[keyword];
+ if (Array.isArray(variants)) {
+ for (const variant of variants) {
+ if (hideFieldInSchema(root, variant, fieldPathParts)) modified = true;
+ }
+ }
+ }
+
+ if (!isObject(schemaNode.properties)) return modified;
+
+ const [current, ...rest] = fieldPathParts;
+
+ if (rest.length === 0) {
+ if (schemaNode.properties[current]) {
+ delete schemaNode.properties[current];
+ return true;
+ }
+ return modified;
+ }
+
+ const child = schemaNode.properties[current];
+ if (!child || typeof child !== 'object') return modified;
+ return hideFieldInSchema(root, child, rest) || modified;
+}
+
+//Processes all operations in the spec and hides fields based on the configuration.
+function hideApiFields(spec, config) {
+ const hideApiFieldsConfig = config.hideApiFields || [];
+
+ if (hideApiFieldsConfig.length === 0) {
+ console.log('No API fields specified to hide');
+ return;
+ }
+
+ const fieldsMap = new Map();
+ for (const { operationId, fields } of hideApiFieldsConfig) {
+ if (operationId && fields && fields.length > 0) {
+ fieldsMap.set(operationId, fields);
+ }
+ }
+
+ for (const [pathKey, pathItem] of Object.entries(spec.paths)) {
+ for (const [method, operation] of Object.entries(pathItem)) {
+ if (!operation.operationId) continue;
+
+ const fields = fieldsMap.get(operation.operationId);
+ if (!fields) continue;
+
+ console.log(`\nProcessing operation: ${operation.operationId} (${method.toUpperCase()} ${pathKey})`);
+
+ hideFieldsInOperation(spec, operation, fields);
+
+ }
+ }
+}
+
+//Hides specified fields from a single operation's parameters and request body.
+function hideFieldsInOperation(spec, op, fields) {
+ const hidden = { parameters: [], requestBody: [] };
+
+ if (op.parameters) {
+ const simpleFields = new Set(fields.filter((f) => !f.includes('.')));
+ op.parameters = op.parameters.filter((p) => {
+ if (p.name && simpleFields.has(p.name)) {
+ hidden.parameters.push(p.name);
+ return false;
+ }
+ return true;
+ });
+ }
+
+ const requestBody = op.requestBody;
+
+ if (requestBody && requestBody.content) {
+ for (const media of Object.values(requestBody.content)) {
+ if (media && media.schema) {
+ for (const field of fields) {
+ const parts = field.split('.').filter(Boolean);
+ if (parts.length && hideFieldInSchema(spec, media.schema, parts)) {
+ hidden.requestBody.push(field);
+ }
+ }
+ }
+ }
+ }
+
+ return hidden;
+}
+
+async function processOpenApiSpec() {
+ try {
+ if (!fs.existsSync(CONFIG_PATH)) {
+ console.error(`Config file not found: ${CONFIG_PATH}`);
+ process.exit(1);
+ }
+
+ const specContent = fs.readFileSync(SPEC_PATH, 'utf8');
+ const spec = JSON.parse(specContent);
+
+ const configContent = fs.readFileSync(CONFIG_PATH, 'utf8');
+ const config = JSON.parse(configContent);
+
+ if (config.hideApiFields && config.hideApiFields.length > 0) {
+ console.log('\n=== Hiding API Fields in Spec ===');
+ hideApiFields(spec, config);
+ }
+
+ let updatedSpecContent = JSON.stringify(spec, null, 2);
+ if (!updatedSpecContent.endsWith('\n')) {
+ updatedSpecContent += '\n';
+ }
+ fs.writeFileSync(SPEC_PATH, updatedSpecContent, 'utf8');
+
+ console.log('\n=== Processing Complete ===');
+ console.log('Successfully updated OpenAPI specification file');
+
+ } catch (error) {
+ console.error('Error processing files:', error.message);
+ process.exit(1);
+ }
+}
+
+if (require.main === module) {
+ processOpenApiSpec();
+}
+
+module.exports = {
+ processOpenApiSpec,
+ hideApiFields
+};
+
+
diff --git a/api-playground/static/js/embedded.js b/api-playground/static/js/embedded.js
index 54e6c5541..9c4945a33 100644
--- a/api-playground/static/js/embedded.js
+++ b/api-playground/static/js/embedded.js
@@ -83,17 +83,18 @@ const setPlaygroundConfig = ({ baseUrl, accessToken }) => {
if(isApiMaticPortalReady) {
_setConfig((defaultConfig) => {
return {
- ...defaultConfig,
- showFullCode: false,
+ // ...defaultConfig,
+ showFullCode: false,
auth: {
bearerAuth: {
AccessToken: accessToken,
},
},
config: {
- ...defaultConfig.config,
+ // ...defaultConfig.config,
"base-url": baseUrl,
},
+ environment: "production",
};
});
}
diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json
index d295422bc..367af5c4c 100644
--- a/api-spec/openapiSpecv3-2_0.json
+++ b/api-spec/openapiSpecv3-2_0.json
@@ -141,6 +141,14 @@
],
"description": "Roles for version 9.5.0.cl"
},
+ {
+ "name": "10.14.0.cl",
+ "id": "10.14.0.cl",
+ "tags": [
+ "10.14.0.cl"
+ ],
+ "description": "Roles for version 10.14.0.cl"
+ },
{
"name": "9.7.0.cl",
"id": "9.7.0.cl",
@@ -595,6 +603,91 @@
}
}
},
+ "/api/rest/2.0/ai/agent/{conversation_identifier}/converse": {
+ "post": {
+ "operationId": "sendAgentMessage",
+ "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\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",
+ "tags": [
+ "AI",
+ "10.13.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "description": "messages to be sent to the agent",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "messages"
+ ]
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [
+ {
+ "in": "path",
+ "name": "conversation_identifier",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Unique identifier for the conversation (used to track context)"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Common successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "201": {
+ "description": "Common error response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Operation failed",
+ "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/converse/sse": {
"post": {
"operationId": "sendAgentMessageStreaming",
@@ -974,7 +1067,7 @@
"/api/rest/2.0/auth/token/custom": {
"post": {
"operationId": "getCustomAccessToken",
- "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. 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 and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). 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 and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\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` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. 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 and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). 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 and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. \n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\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` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values. If `auto_create` is set to `true`, it won't create formula variables and hence won't be applicable for `variable_values`.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n##### Formula Variables\nBefore using variables_values, variables must be created using Create Variable API with type as Formula_Variable (/api/rest/2.0/template/variables/create)\nThe persist_option RESET and NONE cannot be used when variable_values are provided in the request.\nIf you are working with variable_values, you must use other (APPEND, REPLACE) supported modes.\nIf you want to use RESET or NONE, do not pass any variable_values. In such cases, variable_values will remain unaffected.\nWhen using object_id with variable_values, models are supported. \n\n\n\n#### Endpoint URL\n",
"tags": [
"Authentication",
"10.4.0.cl"
@@ -2852,7 +2945,7 @@
"/api/rest/2.0/connections/{connection_identifier}/update": {
"post": {
"operationId": "updateConnectionV2",
- "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n\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 ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n * This is an example of updating a single table in a empty connection:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"DEMORENAME\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"Col1\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col2\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col3\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col312\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col4\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n \n* This is an example of updating a single table in an existing connection with tables:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"CUSTOMER\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [],\n \"relationships\": []\n },\n {\n \"name\": \"tpch5k_falcon_default_schema_users\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"user_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"product_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"user_cost\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n",
"tags": [
"Connections",
"10.4.0.cl"
@@ -4627,7 +4720,7 @@
"type": "string"
},
"model_tables": {
- "description": "List of Models and their respective Tables",
+ "description": "List of Models and their respective Tables\nExample: '[{\"model_name\": \"model_name\", \"tables\": [\"table_name\"]}]'",
"type": "string",
"format": "json"
},
@@ -4641,7 +4734,7 @@
]
},
"worksheets": {
- "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED",
+ "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED\nExample: [\"worksheet_name\"]",
"type": "string",
"format": "json"
},
@@ -4653,6 +4746,7 @@
},
"required": [
"dbt_connection_identifier",
+ "model_tables",
"import_worksheets"
]
}
@@ -5455,6 +5549,8 @@
"ALLOW_NON_EMBED_FULL_APP_ACCESS",
"CAN_ACCESS_ANALYST_STUDIO",
"CAN_MANAGE_ANALYST_STUDIO",
+ "CAN_MODIFY_FOLDERS",
+ "CAN_VIEW_FOLDERS",
"PREVIEW_DOCUMENT_SEARCH",
"CAN_SETUP_VERSION_CONTROL",
"CAN_DOWNLOAD_VISUALS",
@@ -5813,6 +5909,8 @@
"CAN_ACCESS_ANALYST_STUDIO",
"CAN_MANAGE_ANALYST_STUDIO",
"PREVIEW_DOCUMENT_SEARCH",
+ "CAN_MODIFY_FOLDERS",
+ "CAN_VIEW_FOLDERS",
"CAN_SETUP_VERSION_CONTROL",
"CAN_MANAGE_WEBHOOKS",
"CAN_DOWNLOAD_VISUALS",
@@ -6019,6 +6117,8 @@
"ALLOW_NON_EMBED_FULL_APP_ACCESS",
"CAN_ACCESS_ANALYST_STUDIO",
"CAN_MANAGE_ANALYST_STUDIO",
+ "CAN_MODIFY_FOLDERS",
+ "CAN_VIEW_FOLDERS",
"PREVIEW_DOCUMENT_SEARCH",
"CAN_SETUP_VERSION_CONTROL",
"CAN_DOWNLOAD_VISUALS",
@@ -6347,7 +6447,7 @@
"/api/rest/2.0/metadata/copyobject": {
"post": {
"operationId": "copyObject",
- "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n",
+ "description": "\nMakes a copy of an Answer or Liveboard Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n",
"tags": [
"Metadata",
"10.3.0.cl"
@@ -8664,6 +8764,8 @@
"CAN_ACCESS_ANALYST_STUDIO",
"CAN_MANAGE_ANALYST_STUDIO",
"PREVIEW_DOCUMENT_SEARCH",
+ "CAN_MODIFY_FOLDERS",
+ "CAN_VIEW_FOLDERS",
"CAN_SETUP_VERSION_CONTROL",
"PREVIEW_THOUGHTSPOT_SAGE",
"CAN_MANAGE_WEBHOOKS",
@@ -8892,6 +8994,8 @@
"ALLOW_NON_EMBED_FULL_APP_ACCESS",
"CAN_ACCESS_ANALYST_STUDIO",
"CAN_MANAGE_ANALYST_STUDIO",
+ "CAN_VIEW_FOLDERS",
+ "CAN_MODIDY_FOLDERS",
"PREVIEW_DOCUMENT_SEARCH",
"CAN_SETUP_VERSION_CONTROL",
"CAN_MANAGE_WEBHOOKS",
@@ -9052,6 +9156,8 @@
"CAN_CREATE_CATALOG",
"CAN_ACCESS_ANALYST_STUDIO",
"CAN_MANAGE_ANALYST_STUDIO",
+ "CAN_MODIFY_FOLDERS",
+ "CAN_VIEW_FOLDERS",
"PREVIEW_DOCUMENT_SEARCH",
"PREVIEW_THOUGHTSPOT_SAGE",
"CAN_MANAGE_WEBHOOKS",
@@ -11805,6 +11911,88 @@
}
}
},
+ "/api/rest/2.0/system/preferences/communication-channels/configure": {
+ "post": {
+ "operationId": "configureCommunicationChannelPreferences",
+ "description": "\nBetaVersion: 10.14.0.cl or later\n\nConfigure communication channel preferences.\n- Use `cluster_preferences` to update the default preferences for your ThoughtSpot application instance.\n- If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to specify Org-specific preferences that override the defaults.\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 `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "System",
+ "10.14.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "cluster_preferences": {
+ "description": "Cluster-level default configurations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EventChannelConfigInput"
+ }
+ },
+ "org_preferences": {
+ "description": "Org-specific configurations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/OrgChannelConfigInput"
+ }
+ }
+ }
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "204": {
+ "description": "Communication channel preferences successfully updated."
+ },
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "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/system/config": {
"get": {
"operationId": "getSystemConfig",
@@ -12030,6 +12218,128 @@
}
}
},
+ "/api/rest/2.0/system/preferences/communication-channels/search": {
+ "post": {
+ "operationId": "searchCommunicationChannelPreferences",
+ "description": "\nBetaVersion: 10.14.0.cl or later\n\nFetch communication channel preferences.\n- Use `cluster_preferences` to fetch the default preferences for your ThoughtSpot application instance.\n- If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to fetch any Org-specific preferences that override the defaults.\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 `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "System",
+ "10.14.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "cluster_preferences": {
+ "description": "Event types to search for in cluster-level preferences.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ]
+ }
+ },
+ "org_preferences": {
+ "description": "Org-specific search criteria.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/OrgPreferenceSearchCriteriaInput"
+ }
+ }
+ }
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Communication channel preferences retrieved successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CommunicationChannelPreferencesResponse"
+ },
+ "examples": {
+ "example_1": {
+ "value": {
+ "cluster_preferences": [
+ {
+ "event_type": "LIVEBOARD_SCHEDULE",
+ "channels": [
+ "WEBHOOK"
+ ]
+ }
+ ],
+ "org_preferences": [
+ {
+ "org": {
+ "id": "583464508",
+ "name": "test_org"
+ },
+ "preferences": [
+ {
+ "event_type": "LIVEBOARD_SCHEDULE",
+ "channels": [
+ "EMAIL"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "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/system/config-update": {
"post": {
"operationId": "updateSystemConfig",
@@ -13557,6 +13867,8 @@
"CAN_ACCESS_ANALYST_STUDIO",
"CAN_MANAGE_ANALYST_STUDIO",
"PREVIEW_DOCUMENT_SEARCH",
+ "CAN_MODIFY_FOLDERS",
+ "CAN_VIEW_FOLDERS",
"CAN_SETUP_VERSION_CONTROL",
"CAN_MANAGE_WEBHOOKS",
"CAN_DOWNLOAD_VISUALS",
@@ -13932,10 +14244,10 @@
"/api/rest/2.0/template/variables/create": {
"post": {
"operationId": "createVariable",
- "description": "\nCreate a variable which can be used for parameterizing metadata objects BetaVersion: 10.9.0.cl or later\n\nAllows creating a variable which can be used for parameterizing metadata objects in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint supports the following types of variables:\n* CONNECTION_PROPERTY - For connection properties\n* TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this.\n* FORMULA_VARIABLE - For Formula variables\n\nWhen creating a variable, you need to specify:\n* The variable type\n* A unique name for the variable\n* Whether the variable contains sensitive values (defaults to false)\n* The data type of the variable, only specify for fomula variables (defaults to null)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable name already exists\n* The variable type is invalid\n\n\n\n#### Endpoint URL\n",
+ "description": "\nCreate a variable which can be used for parameterizing metadata objects BetaVersion: 10.14.0.cl or later\n\nAllows creating a variable which can be used for parameterizing metadata objects 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 supports the following types of variables:\n* CONNECTION_PROPERTY - For connection properties\n* TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this.\n* FORMULA_VARIABLE - For Formula variables\n\nWhen creating a variable, you need to specify:\n* The variable type\n* A unique name for the variable\n* Whether the variable contains sensitive values (defaults to false)\n* The data type of the variable, only specify for fomula variables (defaults to null)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable name already exists\n* The variable type is invalid\n\n\n\n#### Endpoint URL\n",
"tags": [
"Variable",
- "10.9.0.cl"
+ "10.14.0.cl"
],
"requestBody": {
"content": {
@@ -13956,18 +14268,23 @@
"description": "Name of the variable. This is unique across the cluster.",
"type": "string"
},
- "sensitive": {
+ "is_sensitive": {
"description": "If the variable contains sensitive values like passwords",
"default": false,
"type": "boolean",
"nullable": true
},
- "values": {
- "description": "Values of variable",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/InputVariableValue"
- }
+ "data_type": {
+ "description": "Variable Data Type",
+ "type": "string",
+ "enum": [
+ "VARCHAR",
+ "INT32",
+ "INT64",
+ "DOUBLE",
+ "DATE",
+ "DATE_TIME"
+ ]
}
},
"required": [
@@ -14037,10 +14354,10 @@
"/api/rest/2.0/template/variables/{identifier}/delete": {
"post": {
"operationId": "deleteVariable",
- "description": "\nDelete a variable BetaVersion: 10.9.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT 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",
+ "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",
"tags": [
"Variable",
- "10.9.0.cl"
+ "10.14.0.cl"
],
"parameters": [
{
@@ -14103,10 +14420,10 @@
"/api/rest/2.0/template/variables/search": {
"post": {
"operationId": "searchVariables",
- "description": "\nSearch variables BetaVersion: 10.9.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\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_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable 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#### Endpoint URL\n",
+ "description": "\nSearch variables BetaVersion: 10.14.0.cl or later\n\nAllows searching for 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 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#### Endpoint URL\n",
"tags": [
"Variable",
- "10.9.0.cl"
+ "10.14.0.cl"
],
"requestBody": {
"content": {
@@ -14121,6 +14438,13 @@
"$ref": "#/components/schemas/VariableDetailInput"
}
},
+ "value_scope": {
+ "description": "Array of scope filters",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ValueScopeInput"
+ }
+ },
"record_offset": {
"description": "The starting record number from where the records should be included",
"default": 0,
@@ -14139,8 +14463,7 @@
"type": "string",
"enum": [
"METADATA_ONLY",
- "METADATA_AND_VALUES",
- "EDITABLE_METADATA_AND_VALUES"
+ "METADATA_AND_VALUES"
]
}
}
@@ -14210,10 +14533,10 @@
"/api/rest/2.0/template/variables/{identifier}/update": {
"post": {
"operationId": "updateVariable",
- "description": "\nUpdate a variable's properties BetaVersion: 10.9.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n",
+ "description": "\nUpdate a variable's name BetaVersion: 10.14.0.cl or later\n\nAllows updating a variable's properties 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#### Endpoint URL\n",
"tags": [
"Variable",
- "10.9.0.cl"
+ "10.14.0.cl"
],
"requestBody": {
"content": {
@@ -14222,27 +14545,13 @@
"type": "object",
"properties": {
"name": {
- "description": "New name of the variable if we want to rename.",
+ "description": "New name of the variable.",
"type": "string"
- },
- "operation": {
- "description": "Operation to perform on the values.",
- "default": "REPLACE",
- "type": "string",
- "enum": [
- "ADD",
- "REMOVE",
- "REPLACE"
- ]
- },
- "values": {
- "description": "Values of variable to be updated.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/InputVariableValue"
- }
}
- }
+ },
+ "required": [
+ "name"
+ ]
}
}
},
@@ -14261,7 +14570,7 @@
],
"responses": {
"204": {
- "description": "Updating the variable is successful."
+ "description": "Variable name updated successfully."
},
"400": {
"description": "Invalid request.",
@@ -14306,13 +14615,13 @@
}
}
},
- "/api/rest/2.0/template/variables/update": {
+ "/api/rest/2.0/template/variables/update-values": {
"post": {
"operationId": "updateVariableValues",
- "description": "\nUpdate values for multiple variables BetaVersion: 10.9.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\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, CLEAR)\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* CLEAR - 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\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, CLEAR)\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* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n",
"tags": [
"Variable",
- "10.9.0.cl"
+ "10.14.0.cl"
],
"requestBody": {
"content": {
@@ -14320,26 +14629,24 @@
"schema": {
"type": "object",
"properties": {
- "variable_updates": {
- "description": "Variables and values",
+ "variable_assignment": {
+ "description": "Variables and values to update",
"type": "array",
"items": {
- "$ref": "#/components/schemas/VariableValueInput"
+ "$ref": "#/components/schemas/VariableUpdateAssignmentInput"
}
},
- "operation": {
- "description": "Type of update operation",
- "type": "string",
- "enum": [
- "ADD",
- "REMOVE",
- "REPLACE"
- ]
+ "variable_value_scope": {
+ "description": "Variables and values to update",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/VariableUpdateScopeInput"
+ }
}
},
"required": [
- "variable_updates",
- "operation"
+ "variable_assignment",
+ "variable_value_scope"
]
}
}
@@ -14349,7 +14656,7 @@
"parameters": [],
"responses": {
"204": {
- "description": "Updating variable values is successful."
+ "description": "Variable values updated successfully."
},
"400": {
"description": "Invalid request.",
@@ -15287,104 +15594,795 @@
}
}
}
- }
- },
- "components": {
- "schemas": {
- "ErrorResponse": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "nullable": true
- }
- }
- },
- "GetTokenResponse": {
- "type": "object",
- "required": [
- "token",
- "creation_time_in_millis",
- "expiration_time_in_millis",
- "valid_for_user_id",
- "valid_for_username"
+ },
+ "/api/rest/2.0/webhooks/create": {
+ "post": {
+ "operationId": "createWebhookConfiguration",
+ "description": "\nBetaVersion: 10.14.0.cl or later\n\nCreates a new webhook configuration to receive notifications for specified events. The webhook will be triggered when the configured events occur in the system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Webhooks",
+ "10.14.0.cl"
],
- "properties": {
- "token": {
- "type": "string",
- "description": "Bearer auth token."
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the webhook configuration.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the webhook configuration.",
+ "type": "string"
+ },
+ "url": {
+ "description": "The webhook endpoint URL.",
+ "type": "string"
+ },
+ "url_params": {
+ "description": "Additional URL parameters as key-value pairs.",
+ "type": "object"
+ },
+ "events": {
+ "description": "List of events to subscribe to.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ]
+ }
+ },
+ "authentication": {
+ "description": "Authorization configuration for the webhook.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/WebhookAuthenticationInput"
+ }
+ ]
+ },
+ "signature_verification": {
+ "description": "Configuration for webhook signature verification.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/WebhookSignatureVerificationInput"
+ }
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "url",
+ "events"
+ ]
+ }
+ }
},
- "creation_time_in_millis": {
- "type": "number",
- "format": "float",
- "description": "Token creation time in milliseconds."
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Webhook configuration created successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WebhookResponse"
+ },
+ "examples": {
+ "example_1": {
+ "description": "Basic webhook with Bearer token authentication",
+ "value": {
+ "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
+ "name": "My Liveboard Webhook",
+ "description": "Webhook to notify external system about liveboard schedules",
+ "org": {
+ "id": "0",
+ "name": "Primary"
+ },
+ "url": "https://myapp.example.com/webhooks/thoughtspot",
+ "url_params": {
+ "api_key": "abc123",
+ "version": "v1"
+ },
+ "events": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "authentication": {
+ "BEARER_TOKEN": "***"
+ },
+ "signature_verification": {
+ "type": "HMAC_SHA256",
+ "header": "X-Webhook-Signature",
+ "algorithm": "SHA256",
+ "secret": "***"
+ },
+ "created_at": "2025-08-21T21:57:10.243089030Z",
+ "last_modified_at": "2025-08-21T21:57:10.243089030Z",
+ "created_by": {
+ "id": "8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b",
+ "name": "sarah_chen"
+ },
+ "last_modified_by": {
+ "id": "8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b",
+ "name": "sarah_chen"
+ }
+ }
+ },
+ "example_2": {
+ "description": "Webhook with OAuth2 authentication",
+ "value": {
+ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
+ "name": "OAuth2 Webhook",
+ "description": "Webhook with OAuth2 client credentials",
+ "org": {
+ "id": "0",
+ "name": "Primary"
+ },
+ "url": "https://api.example.com/webhooks",
+ "events": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "authentication": {
+ "OAUTH2": {
+ "authorization_url": "https://auth.example.com/oauth2/authorize",
+ "client_id": "client_123",
+ "client_secret": "***"
+ }
+ },
+ "created_at": "2025-08-21T22:15:30.123456789Z",
+ "last_modified_at": "2025-08-21T22:15:30.123456789Z",
+ "created_by": {
+ "id": "7d5e9f2a-4b8c-4d6e-9a3b-5c7e1f4a8b2d",
+ "name": "mike_rodriguez"
+ }
+ }
+ }
+ }
+ }
+ }
},
- "expiration_time_in_millis": {
- "type": "number",
- "format": "float",
- "description": "Token expiration time in milliseconds."
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
},
- "valid_for_user_id": {
- "type": "string",
- "description": "Username to whom the token is issued."
+ "401": {
+ "description": "Unauthorized access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
},
- "valid_for_username": {
- "type": "string",
- "description": "Unique identifier of the user to whom the token is issued."
- }
- }
- },
- "RiseSetter": {
- "type": "object",
- "required": [
- "field",
- "path"
- ],
- "properties": {
- "field": {
- "type": "string"
+ "403": {
+ "description": "Forbidden access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
},
- "path": {
- "type": "string"
+ "500": {
+ "description": "Unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
}
}
- },
- "User": {
- "type": "object",
- "required": [
- "id",
- "name",
- "display_name",
- "visibility"
+ }
+ },
+ "/api/rest/2.0/webhooks/delete": {
+ "post": {
+ "operationId": "deleteWebhookConfigurations",
+ "description": "\nBetaVersion: 10.14.0.cl or later\n\nDeletes one or more webhook configurations by their unique id or name. Returns status of each deletion operation, including successfully deleted webhooks and any failures with error details.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Webhooks",
+ "10.14.0.cl"
],
- "properties": {
- "id": {
- "type": "string",
- "description": "Unique identifier of the user."
- },
- "name": {
- "type": "string",
- "description": "Name of the user."
- },
- "display_name": {
- "type": "string",
- "description": "Display name of the user."
- },
- "visibility": {
- "type": "string",
- "enum": [
- "SHARABLE",
- "NON_SHARABLE"
- ],
- "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user."
- },
- "author_id": {
- "type": "string",
- "description": "Unique identifier of author of the user.",
- "nullable": true
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhook_identifiers": {
+ "description": "List of webhook identifiers to delete.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "webhook_identifiers"
+ ]
+ }
+ }
},
- "can_change_password": {
- "type": "boolean",
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Webhook configurations deleted successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WebhookDeleteResponse"
+ },
+ "examples": {
+ "example_1": {
+ "description": "Successful deletion of multiple webhooks",
+ "value": {
+ "deleted_count": 2,
+ "failed_count": 0,
+ "deleted_webhooks": [
+ {
+ "id": "b9e3d8f2-4c7a-4e1b-8d3c-5f9a2b7e4c6d",
+ "name": "Old Webhook 1",
+ "description": "First webhook to be deleted",
+ "org": {
+ "id": "0",
+ "name": "Primary"
+ },
+ "url": "https://old-service.example.com/webhook1",
+ "events": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "authentication": {
+ "BEARER_TOKEN": "***"
+ },
+ "created_at": "2025-08-21T15:30:00.000000000Z",
+ "last_modified_at": "2025-08-21T15:30:00.000000000Z",
+ "created_by": {
+ "id": "1f4e7b2d-9c3a-4e6f-8b1d-3e7c5a9b2f4e",
+ "name": "jennifer_patel"
+ }
+ },
+ {
+ "id": "e7c4a1f8-2b5d-4a9e-7c3f-8b1e5d4a7c9b",
+ "name": "Old Webhook 2",
+ "description": "Second webhook to be deleted",
+ "org": {
+ "id": "0",
+ "name": "Primary"
+ },
+ "url": "https://old-service.example.com/webhook2",
+ "events": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "authentication": {
+ "API_KEY": {
+ "key": "X-API-Key",
+ "value": "***"
+ }
+ },
+ "created_at": "2025-08-21T16:45:30.123456789Z",
+ "last_modified_at": "2025-08-21T16:45:30.123456789Z",
+ "created_by": {
+ "id": "9a5c2e8f-4b7d-4c1e-9f2a-6c8e3b5d7a4c",
+ "name": "david_thompson"
+ }
+ }
+ ],
+ "failed_webhooks": []
+ }
+ },
+ "example_2": {
+ "description": "Partial failure during deletion",
+ "value": {
+ "deleted_count": 1,
+ "failed_count": 1,
+ "deleted_webhooks": [
+ {
+ "id": "c8f2a5e9-3d6b-4f1e-a8c2-7e4b1d9f5a3c",
+ "name": "Successfully Deleted Webhook",
+ "description": "This webhook was deleted successfully",
+ "org": {
+ "id": "0",
+ "name": "Primary"
+ },
+ "url": "https://service.example.com/webhook",
+ "events": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "authentication": {
+ "NO_AUTH": ""
+ },
+ "created_at": "2025-08-21T18:20:15.456789012Z",
+ "last_modified_at": "2025-08-21T18:20:15.456789012Z",
+ "created_by": {
+ "id": "6e9c4f2a-8b5d-4e1f-9c3a-5f8b2e7d4a6c",
+ "name": "emma_wang"
+ }
+ }
+ ],
+ "failed_webhooks": [
+ {
+ "id": "a3f7c1e4-9b2d-4a6e-8f3c-1e5b7a9c4f2e",
+ "name": "Non-existent Webhook",
+ "error_message": "Webhook not found or access denied"
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/rest/2.0/webhooks/search": {
+ "post": {
+ "operationId": "searchWebhookConfigurations",
+ "description": "\nBetaVersion: 10.14.0.cl or later\n\nSearches for webhook configurations based on various criteria such as Org, webhook identifier, event type, with support for pagination and sorting. Returns matching webhook configurations with their complete details.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Webhooks",
+ "10.14.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "org_identifier": {
+ "description": "Unique ID or name of the org.",
+ "type": "string"
+ },
+ "webhook_identifier": {
+ "description": "Unique ID or name of the webhook.",
+ "type": "string"
+ },
+ "event_type": {
+ "description": "Type of webhook event to filter by.",
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ]
+ },
+ "record_offset": {
+ "description": "The offset point, starting from where the webhooks should be included in the response.",
+ "default": 0,
+ "type": "integer",
+ "format": "int32"
+ },
+ "record_size": {
+ "description": "The number of webhooks that should be included in the response starting from offset position.",
+ "default": 50,
+ "type": "integer",
+ "format": "int32"
+ },
+ "sort_options": {
+ "description": "Sort option includes sort field and sort order.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/WebhookSortOptionsInput"
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Webhook configurations retrieved successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WebhookSearchResponse"
+ },
+ "examples": {
+ "example_1": {
+ "description": "Search results with multiple webhooks",
+ "value": {
+ "webhooks": [
+ {
+ "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
+ "name": "Liveboard Schedule Webhook",
+ "description": "Webhook for liveboard schedule notifications",
+ "org": {
+ "id": "0",
+ "name": "Primary"
+ },
+ "url": "https://myapp.example.com/webhooks",
+ "url_params": {
+ "api_key": "abc123"
+ },
+ "events": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "authentication": {
+ "BEARER_TOKEN": "***"
+ },
+ "signature_verification": {
+ "type": "HMAC_SHA256",
+ "header": "X-Webhook-Signature",
+ "algorithm": "SHA256",
+ "secret": "***"
+ },
+ "created_at": "2025-08-21T21:57:10.243089030Z",
+ "last_modified_at": "2025-08-21T22:10:15.123456789Z",
+ "created_by": {
+ "id": "8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b",
+ "name": "sarah_chen"
+ },
+ "last_modified_by": {
+ "id": "2c9a7e4f-6b3d-4a8e-9f1c-5e7a3b9c2d6f",
+ "name": "alex_kim"
+ }
+ },
+ {
+ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
+ "name": "API Key Webhook",
+ "description": "Webhook with API key authentication",
+ "org": {
+ "id": "0",
+ "name": "Primary"
+ },
+ "url": "https://api.example.com/notifications",
+ "events": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "authentication": {
+ "API_KEY": {
+ "key": "X-API-Key",
+ "value": "***"
+ }
+ },
+ "created_at": "2025-08-21T20:30:45.987654321Z",
+ "last_modified_at": "2025-08-21T20:30:45.987654321Z",
+ "created_by": {
+ "id": "7d5e9f2a-4b8c-4d6e-9a3b-5c7e1f4a8b2d",
+ "name": "mike_rodriguez"
+ }
+ }
+ ],
+ "pagination": {
+ "record_offset": 0,
+ "record_size": 50,
+ "total_count": 2,
+ "has_more": false
+ }
+ }
+ },
+ "example_2": {
+ "description": "Empty search results",
+ "value": {
+ "webhooks": [],
+ "pagination": {
+ "record_offset": 0,
+ "record_size": 50,
+ "total_count": 0,
+ "has_more": false
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/rest/2.0/webhooks/{webhook_identifier}/update": {
+ "post": {
+ "operationId": "updateWebhookConfiguration",
+ "description": "\nBetaVersion: 10.14.0.cl or later\n\nUpdates an existing webhook configuration by its unique id or name. Only the provided fields will be updated.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Webhooks",
+ "10.14.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the webhook configuration.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the webhook configuration.",
+ "type": "string"
+ },
+ "url": {
+ "description": "The webhook endpoint URL.",
+ "type": "string"
+ },
+ "url_params": {
+ "description": "Additional URL parameters as key-value pairs.",
+ "type": "object"
+ },
+ "events": {
+ "description": "List of events to subscribe to.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ]
+ }
+ },
+ "authentication": {
+ "description": "Authorization configuration for the webhook.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/WebhookAuthenticationInput"
+ }
+ ]
+ },
+ "signature_verification": {
+ "description": "Configuration for webhook signature verification.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/WebhookSignatureVerificationInput"
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [
+ {
+ "in": "path",
+ "name": "webhook_identifier",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Unique ID or name of the webhook configuration."
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Webhook configuration updated successfully"
+ },
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "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"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "ErrorResponse": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "type": "object",
+ "nullable": true
+ }
+ }
+ },
+ "GetTokenResponse": {
+ "type": "object",
+ "required": [
+ "token",
+ "creation_time_in_millis",
+ "expiration_time_in_millis",
+ "valid_for_user_id",
+ "valid_for_username"
+ ],
+ "properties": {
+ "token": {
+ "type": "string",
+ "description": "Bearer auth token."
+ },
+ "creation_time_in_millis": {
+ "type": "number",
+ "format": "float",
+ "description": "Token creation time in milliseconds."
+ },
+ "expiration_time_in_millis": {
+ "type": "number",
+ "format": "float",
+ "description": "Token expiration time in milliseconds."
+ },
+ "valid_for_user_id": {
+ "type": "string",
+ "description": "Username to whom the token is issued."
+ },
+ "valid_for_username": {
+ "type": "string",
+ "description": "Unique identifier of the user to whom the token is issued."
+ }
+ }
+ },
+ "RiseSetter": {
+ "type": "object",
+ "required": [
+ "field",
+ "path"
+ ],
+ "properties": {
+ "field": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ }
+ }
+ },
+ "User": {
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "display_name",
+ "visibility"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique identifier of the user."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the user."
+ },
+ "display_name": {
+ "type": "string",
+ "description": "Display name of the user."
+ },
+ "visibility": {
+ "type": "string",
+ "enum": [
+ "SHARABLE",
+ "NON_SHARABLE"
+ ],
+ "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user."
+ },
+ "author_id": {
+ "type": "string",
+ "description": "Unique identifier of author of the user.",
+ "nullable": true
+ },
+ "can_change_password": {
+ "type": "boolean",
"description": "Defines whether the user can change their password.",
"nullable": true
},
@@ -15624,6 +16622,11 @@
"type": "object",
"description": "Access Control Properties which are specified for the user via JWToken",
"nullable": true
+ },
+ "variable_values": {
+ "type": "object",
+ "description": "Formula Variables which are specified for the user via JWToken",
+ "nullable": true
}
}
},
@@ -15855,29 +16858,137 @@
"description": "The count of users of ALL group.",
"nullable": true
},
- "logical_model_version": {
- "type": "integer",
- "format": "int32",
- "description": "The version number of logical model of the cluster.",
+ "logical_model_version": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The version number of logical model of the cluster.",
+ "nullable": true
+ }
+ }
+ },
+ "SystemConfig": {
+ "type": "object",
+ "properties": {
+ "onboarding_content_url": {
+ "type": "string",
+ "nullable": true
+ }
+ }
+ },
+ "SystemOverrideInfo": {
+ "type": "object",
+ "properties": {
+ "config_override_info": {
+ "type": "object",
+ "nullable": true
+ }
+ }
+ },
+ "OrgPreferenceSearchCriteriaInput": {
+ "type": "object",
+ "required": [
+ "org_identifier"
+ ],
+ "properties": {
+ "org_identifier": {
+ "type": "string",
+ "description": "Unique identifier or name of the org"
+ },
+ "event_types": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ]
+ },
+ "description": "Event types to search for. If not provided, all event types for this org are returned.",
+ "nullable": true
+ }
+ }
+ },
+ "CommunicationChannelPreferencesResponse": {
+ "type": "object",
+ "properties": {
+ "cluster_preferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EventChannelConfig"
+ },
+ "description": "Cluster-level default configurations.",
+ "nullable": true
+ },
+ "org_preferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/OrgChannelConfigResponse"
+ },
+ "description": "Org-specific configurations.",
"nullable": true
}
}
},
- "SystemConfig": {
+ "EventChannelConfig": {
"type": "object",
+ "required": [
+ "event_type",
+ "channels"
+ ],
"properties": {
- "onboarding_content_url": {
+ "event_type": {
"type": "string",
- "nullable": true
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "description": "Type of event for which communication channels are configured"
+ },
+ "channels": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "EMAIL",
+ "WEBHOOK"
+ ]
+ },
+ "description": "Communication channels enabled for this event type. Empty array indicates no channels are enabled."
}
}
},
- "SystemOverrideInfo": {
+ "OrgChannelConfigResponse": {
"type": "object",
+ "required": [
+ "org",
+ "preferences"
+ ],
"properties": {
- "config_override_info": {
- "type": "object",
- "nullable": true
+ "org": {
+ "$ref": "#/components/schemas/OrgDetails",
+ "description": "Org details"
+ },
+ "preferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EventChannelConfig"
+ },
+ "description": "Event-specific communication channel configurations for this org"
+ }
+ }
+ },
+ "OrgDetails": {
+ "type": "object",
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique id of the org"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the org"
}
}
},
@@ -17122,17 +18233,17 @@
"ColumnSecurityRuleResponse": {
"type": "object",
"properties": {
- "guid": {
+ "table_guid": {
"type": "string",
"description": "GUID of the table for which the column security rules are fetched",
"nullable": true
},
- "objId": {
+ "obj_id": {
"type": "string",
"description": "Object ID of the table for which the column security rules are fetched",
"nullable": true
},
- "columnSecurityRules": {
+ "column_security_rules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ColumnSecurityRule"
@@ -17160,7 +18271,7 @@
"description": "Array of groups that have access to this column",
"nullable": true
},
- "sourceTableDetails": {
+ "source_table_details": {
"$ref": "#/components/schemas/ColumnSecurityRuleSourceTable",
"description": "Information about the source table",
"nullable": true
@@ -17915,6 +19026,8 @@
"ALLOW_NON_EMBED_FULL_APP_ACCESS",
"CAN_ACCESS_ANALYST_STUDIO",
"CAN_MANAGE_ANALYST_STUDIO",
+ "CAN_VIEW_FOLDERS",
+ "CAN_MODIDY_FOLDERS",
"PREVIEW_DOCUMENT_SEARCH",
"CAN_SETUP_VERSION_CONTROL",
"CAN_MANAGE_WEBHOOKS",
@@ -18495,6 +19608,36 @@
},
"description": "Input for variable details in search"
},
+ "ValueScopeInput": {
+ "type": "object",
+ "properties": {
+ "org_identifier": {
+ "type": "string",
+ "description": "The unique name of the org",
+ "nullable": true
+ },
+ "principal_type": {
+ "type": "string",
+ "enum": [
+ "USER",
+ "USER_GROUP"
+ ],
+ "description": "Principal type",
+ "nullable": true
+ },
+ "principal_identifier": {
+ "type": "string",
+ "description": "Unique ID or name of the principal",
+ "nullable": true
+ },
+ "model_identifier": {
+ "type": "string",
+ "description": "Model Identifier",
+ "nullable": true
+ }
+ },
+ "description": "Input for variable scope in search"
+ },
"Variable": {
"type": "object",
"required": [
@@ -18547,6 +19690,14 @@
"description": "The value of the variable",
"nullable": true
},
+ "value_list": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The value of the variable if it is a list type",
+ "nullable": true
+ },
"org_identifier": {
"type": "string",
"description": "The unique name of the org"
@@ -18720,33 +19871,337 @@
"FALCON_ONPREM",
"CLICKHOUSE"
],
- "nullable": true
+ "nullable": true
+ },
+ "policy_type": {
+ "type": "string",
+ "enum": [
+ "NO_POLICY",
+ "PRINCIPALS",
+ "PROCESSES"
+ ],
+ "nullable": true
+ }
+ }
+ },
+ "UserPrincipal": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "nullable": true
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "type": {
+ "type": "string",
+ "nullable": true
+ }
+ }
+ },
+ "WebhookSortOptionsInput": {
+ "type": "object",
+ "properties": {
+ "field_name": {
+ "type": "string",
+ "enum": [
+ "CREATED",
+ "MODIFIED",
+ "NAME"
+ ],
+ "default": "CREATED",
+ "description": "Name of the field to apply the sort on.",
+ "nullable": true
+ },
+ "order": {
+ "type": "string",
+ "enum": [
+ "ASC",
+ "DESC"
+ ],
+ "default": "DESC",
+ "description": "Sort order: ASC (Ascending) or DESC (Descending).",
+ "nullable": true
+ }
+ }
+ },
+ "WebhookSearchResponse": {
+ "type": "object",
+ "required": [
+ "webhooks",
+ "pagination"
+ ],
+ "properties": {
+ "webhooks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WebhookResponse"
+ },
+ "description": "List of webhook configurations matching the search criteria."
+ },
+ "pagination": {
+ "$ref": "#/components/schemas/WebhookPagination",
+ "description": "Pagination information."
+ }
+ }
+ },
+ "WebhookResponse": {
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "url",
+ "events",
+ "creation_time_in_millis",
+ "modification_time_in_millis"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique identifier of the webhook configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the webhook configuration."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the webhook configuration.",
+ "nullable": true
+ },
+ "org": {
+ "$ref": "#/components/schemas/WebhookOrg",
+ "description": "Org details.",
+ "nullable": true
+ },
+ "url": {
+ "type": "string",
+ "description": "The webhook endpoint URL."
+ },
+ "url_params": {
+ "type": "object",
+ "description": "Additional URL parameters as key-value pairs.",
+ "nullable": true
+ },
+ "events": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ]
+ },
+ "description": "List of events this webhook subscribes to."
+ },
+ "authentication": {
+ "$ref": "#/components/schemas/WebhookAuthentication",
+ "description": "Redacted authorization configuration for the webhook.",
+ "nullable": true
+ },
+ "signature_verification": {
+ "$ref": "#/components/schemas/WebhookSignatureVerification",
+ "description": "Redacted configuration for webhook signature verification.",
+ "nullable": true
+ },
+ "creation_time_in_millis": {
+ "type": "number",
+ "format": "float",
+ "description": "Creation time of the webhook configuration in milliseconds."
+ },
+ "modification_time_in_millis": {
+ "type": "number",
+ "format": "float",
+ "description": "Last modified time of the webhook configuration in milliseconds."
+ },
+ "created_by": {
+ "$ref": "#/components/schemas/WebhookUser",
+ "description": "User who created the webhook.",
+ "nullable": true
+ },
+ "last_modified_by": {
+ "$ref": "#/components/schemas/WebhookUser",
+ "description": "User who last modified the webhook.",
+ "nullable": true
+ }
+ }
+ },
+ "WebhookOrg": {
+ "type": "object",
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique identifier of the org."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the org."
+ }
+ }
+ },
+ "WebhookAuthentication": {
+ "type": "object",
+ "properties": {
+ "API_KEY": {
+ "$ref": "#/components/schemas/WebhookAuthApiKey",
+ "description": "Redacted API key authentication configuration.",
+ "nullable": true
+ },
+ "BASIC_AUTH": {
+ "$ref": "#/components/schemas/WebhookAuthBasicAuth",
+ "description": "Redacted Basic authentication configuration.",
+ "nullable": true
+ },
+ "BEARER_TOKEN": {
+ "type": "string",
+ "description": "Redacted Bearer token authentication configuration.",
+ "nullable": true
+ },
+ "OAUTH2": {
+ "$ref": "#/components/schemas/WebhookAuthOAuth2",
+ "description": "Redacted OAuth2 authentication configuration.",
+ "nullable": true
+ }
+ }
+ },
+ "WebhookAuthApiKey": {
+ "type": "object",
+ "required": [
+ "key",
+ "value"
+ ],
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "The header or query parameter name for the API key."
+ },
+ "value": {
+ "type": "string",
+ "description": "The API key value."
+ }
+ }
+ },
+ "WebhookAuthBasicAuth": {
+ "type": "object",
+ "required": [
+ "username",
+ "password"
+ ],
+ "properties": {
+ "username": {
+ "type": "string",
+ "description": "Username for basic authentication."
+ },
+ "password": {
+ "type": "string",
+ "description": "Password for basic authentication."
+ }
+ }
+ },
+ "WebhookAuthOAuth2": {
+ "type": "object",
+ "required": [
+ "authorization_url",
+ "client_id",
+ "client_secret"
+ ],
+ "properties": {
+ "authorization_url": {
+ "type": "string",
+ "description": "OAuth2 authorization server URL."
+ },
+ "client_id": {
+ "type": "string",
+ "description": "OAuth2 client identifier."
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "OAuth2 client secret key."
+ }
+ }
+ },
+ "WebhookSignatureVerification": {
+ "type": "object",
+ "required": [
+ "type",
+ "header",
+ "algorithm",
+ "secret"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "HMAC_SHA256"
+ ],
+ "description": "Signature verification method type."
},
- "policy_type": {
+ "header": {
+ "type": "string",
+ "description": "HTTP header where the signature is sent."
+ },
+ "algorithm": {
"type": "string",
"enum": [
- "NO_POLICY",
- "PRINCIPALS",
- "PROCESSES"
+ "SHA256"
],
- "nullable": true
+ "description": "Hash algorithm used for signature verification."
+ },
+ "secret": {
+ "type": "string",
+ "description": "Shared secret used for HMAC signature generation."
}
}
},
- "UserPrincipal": {
+ "WebhookUser": {
"type": "object",
+ "required": [
+ "id",
+ "name"
+ ],
"properties": {
"id": {
"type": "string",
- "nullable": true
+ "description": "Unique identifier of the user."
},
"name": {
"type": "string",
- "nullable": true
+ "description": "Name of the user."
+ }
+ }
+ },
+ "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."
},
- "type": {
- "type": "string",
- "nullable": true
+ "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."
}
}
},
@@ -18890,7 +20345,7 @@
"enum": [
"LOGICAL_TABLE"
],
- "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.",
+ "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`.",
"nullable": true
},
"identifier": {
@@ -19232,7 +20687,7 @@
"enum": [
"LOGICAL_TABLE"
],
- "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.",
+ "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`.",
"nullable": true
},
"identifier": {
@@ -19488,6 +20943,74 @@
}
}
},
+ "EventChannelConfigInput": {
+ "type": "object",
+ "required": [
+ "event_type",
+ "channels"
+ ],
+ "properties": {
+ "event_type": {
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ],
+ "description": "Type of event for which communication channels are configured"
+ },
+ "channels": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "EMAIL",
+ "WEBHOOK"
+ ]
+ },
+ "description": "Communication channels enabled for this event type. Empty array disables all channels for this event."
+ }
+ }
+ },
+ "OrgChannelConfigInput": {
+ "type": "object",
+ "required": [
+ "org_identifier"
+ ],
+ "properties": {
+ "org_identifier": {
+ "type": "string",
+ "description": "Unique identifier or name of the org"
+ },
+ "operation": {
+ "type": "string",
+ "enum": [
+ "REPLACE",
+ "RESET"
+ ],
+ "default": "REPLACE",
+ "description": "Operation to perform. REPLACE: Update preferences (default). RESET: Remove org-specific configurations, causing fallback to cluster-level preferences.",
+ "nullable": true
+ },
+ "preferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EventChannelConfigInput"
+ },
+ "description": "Event-specific configurations. Required for REPLACE operation.",
+ "nullable": true
+ },
+ "reset_events": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "LIVEBOARD_SCHEDULE"
+ ]
+ },
+ "description": "Event types to reset. Required for RESET operation. Org-specific configurations for these events will be removed, causing fallback to cluster-level preferences.",
+ "nullable": true
+ }
+ }
+ },
"TagMetadataTypeInput": {
"type": "object",
"required": [
@@ -19570,6 +21093,8 @@
"ALLOW_NON_EMBED_FULL_APP_ACCESS",
"CAN_ACCESS_ANALYST_STUDIO",
"CAN_MANAGE_ANALYST_STUDIO",
+ "CAN_MODIFY_FOLDERS",
+ "CAN_VIEW_FOLDERS",
"PREVIEW_DOCUMENT_SEARCH",
"CAN_SETUP_VERSION_CONTROL",
"CAN_DOWNLOAD_VISUALS",
@@ -19680,6 +21205,12 @@
"default": false,
"description": "Boolean flag indicating whether to export column security rules of the object. This will only be respected when the object can have column security rules and export_associated is true. BetaVersion: 10.12.0.cl or later",
"nullable": true
+ },
+ "export_with_column_aliases": {
+ "type": "boolean",
+ "default": false,
+ "description": "Boolean flag indicating whether to export column aliases of the model. This will only be respected when the object can have column aliases. BetaVersion: 10.13.0.cl or later",
+ "nullable": true
}
},
"description": "Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled."
@@ -20553,6 +22084,8 @@
"CAN_ACCESS_ANALYST_STUDIO",
"CAN_MANAGE_ANALYST_STUDIO",
"PREVIEW_DOCUMENT_SEARCH",
+ "CAN_MODIFY_FOLDERS",
+ "CAN_VIEW_FOLDERS",
"CAN_SETUP_VERSION_CONTROL",
"PREVIEW_THOUGHTSPOT_SAGE",
"CAN_MANAGE_WEBHOOKS",
@@ -21705,17 +23238,44 @@
}
}
},
- "InputVariableValue": {
+ "VariableUpdateAssignmentInput": {
"type": "object",
"required": [
- "value",
- "org_identifier"
+ "variable_identifier",
+ "variable_values",
+ "operation"
],
"properties": {
- "value": {
+ "variable_identifier": {
"type": "string",
- "description": "The connection property value"
+ "description": "ID or Name of the variable"
+ },
+ "variable_values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Values of the variable"
},
+ "operation": {
+ "type": "string",
+ "enum": [
+ "ADD",
+ "REMOVE",
+ "REPLACE",
+ "CLEAR"
+ ],
+ "description": "Operation to perform"
+ }
+ },
+ "description": "Input for variable value update in batch operations"
+ },
+ "VariableUpdateScopeInput": {
+ "type": "object",
+ "required": [
+ "org_identifier"
+ ],
+ "properties": {
"org_identifier": {
"type": "string",
"description": "The unique name of the org"
@@ -21734,34 +23294,19 @@
"description": "Unique ID or name of the principal",
"nullable": true
},
+ "model_identifier": {
+ "type": "string",
+ "description": "Unique ID of the model",
+ "nullable": true
+ },
"priority": {
"type": "integer",
"format": "int32",
- "description": "The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked.",
+ "description": "Priority level",
"nullable": true
}
- }
- },
- "VariableValueInput": {
- "type": "object",
- "required": [
- "variable_identifier",
- "variable_values"
- ],
- "properties": {
- "variable_identifier": {
- "type": "string",
- "description": "ID or Name of the variable"
- },
- "variable_values": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/InputVariableValue"
- },
- "description": "Values of the variable"
- }
},
- "description": "Input for variable value update"
+ "description": "Input for variable value update in batch operations"
},
"CreateEmailCustomizationResponse": {
"type": "object",
@@ -21964,6 +23509,177 @@
}
}
},
+ "WebhookAuthenticationInput": {
+ "type": "object",
+ "properties": {
+ "API_KEY": {
+ "$ref": "#/components/schemas/WebhookAuthApiKeyInput",
+ "description": "API key authentication configuration.",
+ "nullable": true
+ },
+ "BASIC_AUTH": {
+ "$ref": "#/components/schemas/WebhookAuthBasicAuthInput",
+ "description": "Basic authentication configuration.",
+ "nullable": true
+ },
+ "BEARER_TOKEN": {
+ "type": "string",
+ "description": "Bearer token authentication configuration.",
+ "nullable": true
+ },
+ "OAUTH2": {
+ "$ref": "#/components/schemas/WebhookAuthOAuth2Input",
+ "description": "OAuth2 authentication configuration.",
+ "nullable": true
+ }
+ }
+ },
+ "WebhookAuthApiKeyInput": {
+ "type": "object",
+ "required": [
+ "key",
+ "value"
+ ],
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "The header or query parameter name for the API key."
+ },
+ "value": {
+ "type": "string",
+ "description": "The API key value."
+ }
+ }
+ },
+ "WebhookAuthBasicAuthInput": {
+ "type": "object",
+ "required": [
+ "username",
+ "password"
+ ],
+ "properties": {
+ "username": {
+ "type": "string",
+ "description": "Username for basic authentication."
+ },
+ "password": {
+ "type": "string",
+ "description": "Password for basic authentication."
+ }
+ }
+ },
+ "WebhookAuthOAuth2Input": {
+ "type": "object",
+ "required": [
+ "authorization_url",
+ "client_id",
+ "client_secret"
+ ],
+ "properties": {
+ "authorization_url": {
+ "type": "string",
+ "description": "OAuth2 authorization server URL."
+ },
+ "client_id": {
+ "type": "string",
+ "description": "OAuth2 client identifier."
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "OAuth2 client secret key."
+ }
+ }
+ },
+ "WebhookSignatureVerificationInput": {
+ "type": "object",
+ "required": [
+ "type",
+ "header",
+ "algorithm",
+ "secret"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "HMAC_SHA256"
+ ],
+ "description": "Signature verification method type."
+ },
+ "header": {
+ "type": "string",
+ "description": "HTTP header where the signature is sent."
+ },
+ "algorithm": {
+ "type": "string",
+ "enum": [
+ "SHA256"
+ ],
+ "description": "Hash algorithm used for signature verification."
+ },
+ "secret": {
+ "type": "string",
+ "description": "Shared secret used for HMAC signature generation."
+ }
+ }
+ },
+ "WebhookDeleteResponse": {
+ "type": "object",
+ "required": [
+ "deleted_count",
+ "failed_count",
+ "deleted_webhooks",
+ "failed_webhooks"
+ ],
+ "properties": {
+ "deleted_count": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of webhooks successfully deleted."
+ },
+ "failed_count": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of webhooks that failed to delete."
+ },
+ "deleted_webhooks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WebhookResponse"
+ },
+ "description": "List of successfully deleted webhooks."
+ },
+ "failed_webhooks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WebhookDeleteFailure"
+ },
+ "description": "List of webhooks that failed to delete with error details."
+ }
+ }
+ },
+ "WebhookDeleteFailure": {
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "error"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique identifier of the webhook that failed to delete."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the webhook that failed to delete."
+ },
+ "error": {
+ "type": "string",
+ "description": "Error message describing why the deletion failed."
+ }
+ }
+ },
"Runtime_Filter": {
"type": "object",
"properties": {
diff --git a/sdks/java/.openapi-generator/FILES b/sdks/java/.openapi-generator/FILES
index f1a94dadf..06cc6e9d6 100644
--- a/sdks/java/.openapi-generator/FILES
+++ b/sdks/java/.openapi-generator/FILES
@@ -52,6 +52,8 @@ docs/CommitFileType.md
docs/CommitHistoryResponse.md
docs/CommitResponse.md
docs/CommiterType.md
+docs/CommunicationChannelPreferencesResponse.md
+docs/ConfigureCommunicationChannelPreferencesRequest.md
docs/ConnectionConfigurationResponse.md
docs/ConnectionConfigurationSearchRequest.md
docs/ConnectionConfigurationsApi.md
@@ -79,6 +81,7 @@ docs/CreateTagRequest.md
docs/CreateUserGroupRequest.md
docs/CreateUserRequest.md
docs/CreateVariableRequest.md
+docs/CreateWebhookConfigurationRequest.md
docs/CronExpression.md
docs/CronExpressionInput.md
docs/CustomActionApi.md
@@ -103,6 +106,7 @@ docs/DeleteConnectionRequest.md
docs/DeleteMetadataRequest.md
docs/DeleteMetadataTypeInput.md
docs/DeleteOrgEmailCustomizationRequest.md
+docs/DeleteWebhookConfigurationsRequest.md
docs/DeployCommitRequest.md
docs/DeployResponse.md
docs/EmailCustomizationApi.md
@@ -114,6 +118,8 @@ docs/EurekaGetRelevantQuestionsResponse.md
docs/EurekaLLMDecomposeQueryResponse.md
docs/EurekaLLMSuggestedQuery.md
docs/EurekaRelevantQuestion.md
+docs/EventChannelConfig.md
+docs/EventChannelConfigInput.md
docs/ExcludeMetadataListItemInput.md
docs/ExportAnswerReportRequest.md
docs/ExportLiveboardReportRequest.md
@@ -163,7 +169,6 @@ docs/ImportUserType.md
docs/ImportUsersRequest.md
docs/ImportUsersResponse.md
docs/InputEurekaNLSRequest.md
-docs/InputVariableValue.md
docs/JWTMetadataObject.md
docs/JWTParameter.md
docs/JWTUserOptions.md
@@ -188,7 +193,11 @@ docs/MetadataSearchSortOptions.md
docs/ModelTableList.md
docs/ObjectIDAndName.md
docs/Org.md
+docs/OrgChannelConfigInput.md
+docs/OrgChannelConfigResponse.md
+docs/OrgDetails.md
docs/OrgInfo.md
+docs/OrgPreferenceSearchCriteriaInput.md
docs/OrgResponse.md
docs/OrgType.md
docs/OrgsApi.md
@@ -252,6 +261,7 @@ docs/SchemaObject.md
docs/Scope.md
docs/SearchCalendarsRequest.md
docs/SearchCommitsRequest.md
+docs/SearchCommunicationChannelPreferencesRequest.md
docs/SearchConfigRequest.md
docs/SearchConnectionRequest.md
docs/SearchConnectionResponse.md
@@ -268,7 +278,9 @@ docs/SearchTagsRequest.md
docs/SearchUserGroupsRequest.md
docs/SearchUsersRequest.md
docs/SearchVariablesRequest.md
+docs/SearchWebhookConfigurationsRequest.md
docs/SecurityApi.md
+docs/SendAgentMessageRequest.md
docs/SendAgentMessageResponse.md
docs/SendAgentMessageStreamingRequest.md
docs/SendMessageRequest.md
@@ -320,6 +332,7 @@ docs/UpdateUserGroupRequest.md
docs/UpdateUserRequest.md
docs/UpdateVariableRequest.md
docs/UpdateVariableValuesRequest.md
+docs/UpdateWebhookConfigurationRequest.md
docs/User.md
docs/UserGroup.md
docs/UserGroupResponse.md
@@ -330,12 +343,33 @@ docs/UserPrincipal.md
docs/UsersApi.md
docs/ValidateMergeRequest.md
docs/ValidateTokenRequest.md
+docs/ValueScopeInput.md
docs/Variable.md
docs/VariableApi.md
docs/VariableDetailInput.md
+docs/VariableUpdateAssignmentInput.md
+docs/VariableUpdateScopeInput.md
docs/VariableValue.md
-docs/VariableValueInput.md
docs/VersionControlApi.md
+docs/WebhookAuthApiKey.md
+docs/WebhookAuthApiKeyInput.md
+docs/WebhookAuthBasicAuth.md
+docs/WebhookAuthBasicAuthInput.md
+docs/WebhookAuthOAuth2.md
+docs/WebhookAuthOAuth2Input.md
+docs/WebhookAuthentication.md
+docs/WebhookAuthenticationInput.md
+docs/WebhookDeleteFailure.md
+docs/WebhookDeleteResponse.md
+docs/WebhookOrg.md
+docs/WebhookPagination.md
+docs/WebhookResponse.md
+docs/WebhookSearchResponse.md
+docs/WebhookSignatureVerification.md
+docs/WebhookSignatureVerificationInput.md
+docs/WebhookSortOptionsInput.md
+docs/WebhookUser.md
+docs/WebhooksApi.md
git_push.sh
gradle.properties
gradle/wrapper/gradle-wrapper.jar
@@ -387,6 +421,7 @@ src/main/java/com/thoughtspot/client/api/ThoughtSpotRestApi.java
src/main/java/com/thoughtspot/client/api/UsersApi.java
src/main/java/com/thoughtspot/client/api/VariableApi.java
src/main/java/com/thoughtspot/client/api/VersionControlApi.java
+src/main/java/com/thoughtspot/client/api/WebhooksApi.java
src/main/java/com/thoughtspot/client/auth/ApiKeyAuth.java
src/main/java/com/thoughtspot/client/auth/Authentication.java
src/main/java/com/thoughtspot/client/auth/HttpBasicAuth.java
@@ -437,6 +472,8 @@ src/main/java/com/thoughtspot/client/model/CommitFileType.java
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/ConfigureCommunicationChannelPreferencesRequest.java
src/main/java/com/thoughtspot/client/model/ConnectionConfigurationResponse.java
src/main/java/com/thoughtspot/client/model/ConnectionConfigurationSearchRequest.java
src/main/java/com/thoughtspot/client/model/ConnectionInput.java
@@ -462,6 +499,7 @@ src/main/java/com/thoughtspot/client/model/CreateTagRequest.java
src/main/java/com/thoughtspot/client/model/CreateUserGroupRequest.java
src/main/java/com/thoughtspot/client/model/CreateUserRequest.java
src/main/java/com/thoughtspot/client/model/CreateVariableRequest.java
+src/main/java/com/thoughtspot/client/model/CreateWebhookConfigurationRequest.java
src/main/java/com/thoughtspot/client/model/CronExpression.java
src/main/java/com/thoughtspot/client/model/CronExpressionInput.java
src/main/java/com/thoughtspot/client/model/CustomActionMetadataTypeInput.java
@@ -482,6 +520,7 @@ 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/DeleteWebhookConfigurationsRequest.java
src/main/java/com/thoughtspot/client/model/DeployCommitRequest.java
src/main/java/com/thoughtspot/client/model/DeployResponse.java
src/main/java/com/thoughtspot/client/model/EntityHeader.java
@@ -492,6 +531,8 @@ src/main/java/com/thoughtspot/client/model/EurekaGetRelevantQuestionsResponse.ja
src/main/java/com/thoughtspot/client/model/EurekaLLMDecomposeQueryResponse.java
src/main/java/com/thoughtspot/client/model/EurekaLLMSuggestedQuery.java
src/main/java/com/thoughtspot/client/model/EurekaRelevantQuestion.java
+src/main/java/com/thoughtspot/client/model/EventChannelConfig.java
+src/main/java/com/thoughtspot/client/model/EventChannelConfigInput.java
src/main/java/com/thoughtspot/client/model/ExcludeMetadataListItemInput.java
src/main/java/com/thoughtspot/client/model/ExportAnswerReportRequest.java
src/main/java/com/thoughtspot/client/model/ExportLiveboardReportRequest.java
@@ -540,7 +581,6 @@ src/main/java/com/thoughtspot/client/model/ImportUserType.java
src/main/java/com/thoughtspot/client/model/ImportUsersRequest.java
src/main/java/com/thoughtspot/client/model/ImportUsersResponse.java
src/main/java/com/thoughtspot/client/model/InputEurekaNLSRequest.java
-src/main/java/com/thoughtspot/client/model/InputVariableValue.java
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
@@ -563,7 +603,11 @@ src/main/java/com/thoughtspot/client/model/MetadataSearchSortOptions.java
src/main/java/com/thoughtspot/client/model/ModelTableList.java
src/main/java/com/thoughtspot/client/model/ObjectIDAndName.java
src/main/java/com/thoughtspot/client/model/Org.java
+src/main/java/com/thoughtspot/client/model/OrgChannelConfigInput.java
+src/main/java/com/thoughtspot/client/model/OrgChannelConfigResponse.java
+src/main/java/com/thoughtspot/client/model/OrgDetails.java
src/main/java/com/thoughtspot/client/model/OrgInfo.java
+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
@@ -623,6 +667,7 @@ src/main/java/com/thoughtspot/client/model/SchemaObject.java
src/main/java/com/thoughtspot/client/model/Scope.java
src/main/java/com/thoughtspot/client/model/SearchCalendarsRequest.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
src/main/java/com/thoughtspot/client/model/SearchConnectionRequest.java
src/main/java/com/thoughtspot/client/model/SearchConnectionResponse.java
@@ -639,6 +684,8 @@ src/main/java/com/thoughtspot/client/model/SearchTagsRequest.java
src/main/java/com/thoughtspot/client/model/SearchUserGroupsRequest.java
src/main/java/com/thoughtspot/client/model/SearchUsersRequest.java
src/main/java/com/thoughtspot/client/model/SearchVariablesRequest.java
+src/main/java/com/thoughtspot/client/model/SearchWebhookConfigurationsRequest.java
+src/main/java/com/thoughtspot/client/model/SendAgentMessageRequest.java
src/main/java/com/thoughtspot/client/model/SendAgentMessageResponse.java
src/main/java/com/thoughtspot/client/model/SendAgentMessageStreamingRequest.java
src/main/java/com/thoughtspot/client/model/SendMessageRequest.java
@@ -687,6 +734,7 @@ src/main/java/com/thoughtspot/client/model/UpdateUserGroupRequest.java
src/main/java/com/thoughtspot/client/model/UpdateUserRequest.java
src/main/java/com/thoughtspot/client/model/UpdateVariableRequest.java
src/main/java/com/thoughtspot/client/model/UpdateVariableValuesRequest.java
+src/main/java/com/thoughtspot/client/model/UpdateWebhookConfigurationRequest.java
src/main/java/com/thoughtspot/client/model/User.java
src/main/java/com/thoughtspot/client/model/UserGroup.java
src/main/java/com/thoughtspot/client/model/UserGroupResponse.java
@@ -696,10 +744,30 @@ 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/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/VariableUpdateAssignmentInput.java
+src/main/java/com/thoughtspot/client/model/VariableUpdateScopeInput.java
src/main/java/com/thoughtspot/client/model/VariableValue.java
-src/main/java/com/thoughtspot/client/model/VariableValueInput.java
+src/main/java/com/thoughtspot/client/model/WebhookAuthApiKey.java
+src/main/java/com/thoughtspot/client/model/WebhookAuthApiKeyInput.java
+src/main/java/com/thoughtspot/client/model/WebhookAuthBasicAuth.java
+src/main/java/com/thoughtspot/client/model/WebhookAuthBasicAuthInput.java
+src/main/java/com/thoughtspot/client/model/WebhookAuthOAuth2.java
+src/main/java/com/thoughtspot/client/model/WebhookAuthOAuth2Input.java
+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/WebhookOrg.java
+src/main/java/com/thoughtspot/client/model/WebhookPagination.java
+src/main/java/com/thoughtspot/client/model/WebhookResponse.java
+src/main/java/com/thoughtspot/client/model/WebhookSearchResponse.java
+src/main/java/com/thoughtspot/client/model/WebhookSignatureVerification.java
+src/main/java/com/thoughtspot/client/model/WebhookSignatureVerificationInput.java
+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/ConnectionConfigurationsApiTest.java
@@ -723,6 +791,7 @@ src/test/java/com/thoughtspot/client/api/ThoughtSpotRestApiTest.java
src/test/java/com/thoughtspot/client/api/UsersApiTest.java
src/test/java/com/thoughtspot/client/api/VariableApiTest.java
src/test/java/com/thoughtspot/client/api/VersionControlApiTest.java
+src/test/java/com/thoughtspot/client/api/WebhooksApiTest.java
src/test/java/com/thoughtspot/client/model/AIContextTest.java
src/test/java/com/thoughtspot/client/model/APIKeyInputTest.java
src/test/java/com/thoughtspot/client/model/APIKeyTest.java
@@ -768,6 +837,8 @@ src/test/java/com/thoughtspot/client/model/CommitFileTypeTest.java
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/ConfigureCommunicationChannelPreferencesRequestTest.java
src/test/java/com/thoughtspot/client/model/ConnectionConfigurationResponseTest.java
src/test/java/com/thoughtspot/client/model/ConnectionConfigurationSearchRequestTest.java
src/test/java/com/thoughtspot/client/model/ConnectionInputTest.java
@@ -793,6 +864,7 @@ src/test/java/com/thoughtspot/client/model/CreateTagRequestTest.java
src/test/java/com/thoughtspot/client/model/CreateUserGroupRequestTest.java
src/test/java/com/thoughtspot/client/model/CreateUserRequestTest.java
src/test/java/com/thoughtspot/client/model/CreateVariableRequestTest.java
+src/test/java/com/thoughtspot/client/model/CreateWebhookConfigurationRequestTest.java
src/test/java/com/thoughtspot/client/model/CronExpressionInputTest.java
src/test/java/com/thoughtspot/client/model/CronExpressionTest.java
src/test/java/com/thoughtspot/client/model/CustomActionMetadataTypeInputTest.java
@@ -813,6 +885,7 @@ 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/DeleteWebhookConfigurationsRequestTest.java
src/test/java/com/thoughtspot/client/model/DeployCommitRequestTest.java
src/test/java/com/thoughtspot/client/model/DeployResponseTest.java
src/test/java/com/thoughtspot/client/model/EntityHeaderTest.java
@@ -823,6 +896,8 @@ src/test/java/com/thoughtspot/client/model/EurekaGetRelevantQuestionsResponseTes
src/test/java/com/thoughtspot/client/model/EurekaLLMDecomposeQueryResponseTest.java
src/test/java/com/thoughtspot/client/model/EurekaLLMSuggestedQueryTest.java
src/test/java/com/thoughtspot/client/model/EurekaRelevantQuestionTest.java
+src/test/java/com/thoughtspot/client/model/EventChannelConfigInputTest.java
+src/test/java/com/thoughtspot/client/model/EventChannelConfigTest.java
src/test/java/com/thoughtspot/client/model/ExcludeMetadataListItemInputTest.java
src/test/java/com/thoughtspot/client/model/ExportAnswerReportRequestTest.java
src/test/java/com/thoughtspot/client/model/ExportLiveboardReportRequestTest.java
@@ -871,7 +946,6 @@ src/test/java/com/thoughtspot/client/model/ImportUserTypeTest.java
src/test/java/com/thoughtspot/client/model/ImportUsersRequestTest.java
src/test/java/com/thoughtspot/client/model/ImportUsersResponseTest.java
src/test/java/com/thoughtspot/client/model/InputEurekaNLSRequestTest.java
-src/test/java/com/thoughtspot/client/model/InputVariableValueTest.java
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
@@ -893,7 +967,11 @@ src/test/java/com/thoughtspot/client/model/MetadataSearchResponseTest.java
src/test/java/com/thoughtspot/client/model/MetadataSearchSortOptionsTest.java
src/test/java/com/thoughtspot/client/model/ModelTableListTest.java
src/test/java/com/thoughtspot/client/model/ObjectIDAndNameTest.java
+src/test/java/com/thoughtspot/client/model/OrgChannelConfigInputTest.java
+src/test/java/com/thoughtspot/client/model/OrgChannelConfigResponseTest.java
+src/test/java/com/thoughtspot/client/model/OrgDetailsTest.java
src/test/java/com/thoughtspot/client/model/OrgInfoTest.java
+src/test/java/com/thoughtspot/client/model/OrgPreferenceSearchCriteriaInputTest.java
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
@@ -954,6 +1032,7 @@ src/test/java/com/thoughtspot/client/model/SchemaObjectTest.java
src/test/java/com/thoughtspot/client/model/ScopeTest.java
src/test/java/com/thoughtspot/client/model/SearchCalendarsRequestTest.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
src/test/java/com/thoughtspot/client/model/SearchConnectionRequestTest.java
src/test/java/com/thoughtspot/client/model/SearchConnectionResponseTest.java
@@ -970,6 +1049,8 @@ src/test/java/com/thoughtspot/client/model/SearchTagsRequestTest.java
src/test/java/com/thoughtspot/client/model/SearchUserGroupsRequestTest.java
src/test/java/com/thoughtspot/client/model/SearchUsersRequestTest.java
src/test/java/com/thoughtspot/client/model/SearchVariablesRequestTest.java
+src/test/java/com/thoughtspot/client/model/SearchWebhookConfigurationsRequestTest.java
+src/test/java/com/thoughtspot/client/model/SendAgentMessageRequestTest.java
src/test/java/com/thoughtspot/client/model/SendAgentMessageResponseTest.java
src/test/java/com/thoughtspot/client/model/SendAgentMessageStreamingRequestTest.java
src/test/java/com/thoughtspot/client/model/SendMessageRequestTest.java
@@ -1018,6 +1099,7 @@ src/test/java/com/thoughtspot/client/model/UpdateUserGroupRequestTest.java
src/test/java/com/thoughtspot/client/model/UpdateUserRequestTest.java
src/test/java/com/thoughtspot/client/model/UpdateVariableRequestTest.java
src/test/java/com/thoughtspot/client/model/UpdateVariableValuesRequestTest.java
+src/test/java/com/thoughtspot/client/model/UpdateWebhookConfigurationRequestTest.java
src/test/java/com/thoughtspot/client/model/UserGroupResponseTest.java
src/test/java/com/thoughtspot/client/model/UserGroupTest.java
src/test/java/com/thoughtspot/client/model/UserInfoTest.java
@@ -1027,8 +1109,28 @@ 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/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/VariableTest.java
-src/test/java/com/thoughtspot/client/model/VariableValueInputTest.java
+src/test/java/com/thoughtspot/client/model/VariableUpdateAssignmentInputTest.java
+src/test/java/com/thoughtspot/client/model/VariableUpdateScopeInputTest.java
src/test/java/com/thoughtspot/client/model/VariableValueTest.java
+src/test/java/com/thoughtspot/client/model/WebhookAuthApiKeyInputTest.java
+src/test/java/com/thoughtspot/client/model/WebhookAuthApiKeyTest.java
+src/test/java/com/thoughtspot/client/model/WebhookAuthBasicAuthInputTest.java
+src/test/java/com/thoughtspot/client/model/WebhookAuthBasicAuthTest.java
+src/test/java/com/thoughtspot/client/model/WebhookAuthOAuth2InputTest.java
+src/test/java/com/thoughtspot/client/model/WebhookAuthOAuth2Test.java
+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/WebhookOrgTest.java
+src/test/java/com/thoughtspot/client/model/WebhookPaginationTest.java
+src/test/java/com/thoughtspot/client/model/WebhookResponseTest.java
+src/test/java/com/thoughtspot/client/model/WebhookSearchResponseTest.java
+src/test/java/com/thoughtspot/client/model/WebhookSignatureVerificationInputTest.java
+src/test/java/com/thoughtspot/client/model/WebhookSignatureVerificationTest.java
+src/test/java/com/thoughtspot/client/model/WebhookSortOptionsInputTest.java
+src/test/java/com/thoughtspot/client/model/WebhookUserTest.java
utils/settings.xml
diff --git a/sdks/java/README.md b/sdks/java/README.md
index 2dbf573bd..7fc480fbc 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.18.0
+ 2.19.0compile
```
@@ -29,7 +29,7 @@ Add this dependency to your project's build file:
}
dependencies {
- implementation "com.thoughtspot:rest-api-sdk:2.18.0"
+ implementation "com.thoughtspot:rest-api-sdk:2.19.0"
}
```
diff --git a/sdks/java/api/openapi.yaml b/sdks/java/api/openapi.yaml
index d13090aa3..e43a25c6a 100644
--- a/sdks/java/api/openapi.yaml
+++ b/sdks/java/api/openapi.yaml
@@ -307,6 +307,70 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
+ /api/rest/2.0/ai/agent/{conversation_identifier}/converse:
+ 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\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"
+ operationId: sendAgentMessage
+ parameters:
+ - description: Unique identifier for the conversation (used to track context)
+ explode: false
+ in: path
+ name: conversation_identifier
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/sendAgentMessage_request'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ type: object
+ description: Common successful response
+ "201":
+ content:
+ application/json:
+ schema:
+ type: object
+ description: Common error response
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Operation failed
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Operation failed
+ tags:
+ - AI
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - 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\
@@ -614,56 +678,62 @@ paths:
- application/json
/api/rest/2.0/auth/token/custom:
post:
- description: |2+
-
- Version: 10.4.0.cl or later
-
-
- Gets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.
-
- To add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. 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 and edit access to the data source is required.
-
- To assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). 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 and edit access to the data source is required.
-
- #### Usage guidelines
-
- You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.
-
- To generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.
-
- **Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.
-
- If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.
-
- ##### Attribute-Based Access Control (ABAC) with tokens
-
- To implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.
-
- Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.
-
- For more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).
-
- ##### Just-in-time provisioning
-
- For just-in-time user creation and provisioning, define the following attributes:
-
- * `auto_create`
- * `username`
- * `display_name`
- * `email`
- * `groups`
-
- Set `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` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.
-
- For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).
-
- ##### Important point to note
- All options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.
-
-
-
-
-
+ description: "\n Version: 10.4.0.cl or later\n\n\nGets an authentication token\
+ \ with custom rules and security attributes and creates a full session in\
+ \ ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot\
+ \ remains valid for 5 mins.\n\nTo add a new user and assign privileges during\
+ \ auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**)\
+ \ privilege. 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 and edit access to the data source is required.\n\nTo assign security\
+ \ attributes with filter rules and Parameters to the JWT token, you'll need\
+ \ administrator privileges and edit access to the data source (Worksheet or\
+ \ Model). 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 and edit access to the data source is required.\n\n#### Usage\
+ \ guidelines\n\nYou can generate the token for a user by providing a `username`\
+ \ and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a\
+ \ `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)\
+ \ in the **Develop** > **Customizations** > **Security Settings** page.\n\n\
+ **Note**: When both `password` and `secret_key` are included in the API request,\
+ \ `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is\
+ \ enabled on your instance, the API login request with basic authentication\
+ \ (`username` and `password` ) returns an error. You can switch to token-based\
+ \ authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\
+ \n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement\
+ \ Attribute-Based Access Control (ABAC) and assign security entitlements to\
+ \ users during session creation, you can generate a token with custom filtering\
+ \ rules and Parameters in the `filter_rules` and `parameter_values` array\
+ \ respectively. These attributes can be configured to persist on a specific\
+ \ set of objects for user sessions initiated using the token. Once defined,\
+ \ the rules are added to the user's `access_control_properties` object, after\
+ \ which all sessions will use the persisted values.\n\nSpecify the object\
+ \ type as `LOGICAL_TABLE`. \n\nFor more information, see [ABAC via tokens\
+ \ Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\
+ \n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning,\
+ \ define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n\
+ * `email`\n* `groups`\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` in the API request, the user properties such\
+ \ as the display name, email, Org and group assignment will not be updated\
+ \ with new values. If `auto_create` is set to `true`, it won't create formula\
+ \ variables and hence won't be applicable for `variable_values`.\n\nFor more\
+ \ information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\
+ \n##### Important point to note\nAll options in the token creation APIs that\
+ \ define access to the content in ThoughtSpot will do so during the token\
+ \ creation and not when the token is being used for authentication. For example,\
+ \ `auto_create:true` will create the user when the authentication token is\
+ \ created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist\
+ \ security parameters on the user profile when the token is created, while\
+ \ Persist option `NONE` will not persist anything but will be honoured in\
+ \ the session.\n\n##### Formula Variables\nBefore using variables_values,\
+ \ variables must be created using Create Variable API with type as Formula_Variable\
+ \ (/api/rest/2.0/template/variables/create)\nThe persist_option RESET and\
+ \ NONE cannot be used when variable_values are provided in the request.\n\
+ If you are working with variable_values, you must use other (APPEND, REPLACE)\
+ \ supported modes.\nIf you want to use RESET or NONE, do not pass any variable_values.\
+ \ In such cases, variable_values will remain unaffected.\nWhen using object_id\
+ \ with variable_values, models are supported. \n\n\n\n\n"
operationId: getCustomAccessToken
parameters: []
requestBody:
@@ -1885,46 +1955,102 @@ paths:
\ If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT\
\ as the authentication type.\n\n * A JSON map of configuration attributes,\
\ database details, and table properties in `data_warehouse_config` as shown\
- \ in the following example:\n\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 ```\n\n3. If you are updating\
- \ a configuration attribute, connection name, or description, you can set\
- \ `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything\
- \ other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType\
- \ property in the payload. If you do not specify authenticationType, the\
- \ API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A\
- \ JSON map of configuration attributes in `data_warehouse_config`. The following\
- \ example shows the configuration attributes for a Snowflake connection:\n\
- \ ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\"\
- ,\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n\
- \ \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n \
- \ },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n\
- \n"
+ \ in the following example:\n * This is an example of updating a single\
+ \ table in a empty connection:\n \n ```\n {\n \"authenticationType\"\
+ : \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \
+ \ \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n\
+ \ \"schemas\": [\n {\n \"name\": \"\
+ TS_dataset\",\n \"tables\": [\n {\n \
+ \ \"name\": \"DEMORENAME\",\n \"type\": \"\
+ TABLE\",\n \"description\": \"\",\n \
+ \ \"selected\": true,\n \"linked\": true,\n \
+ \ \"gid\": 0,\n \"datasetId\": \"-1\",\n \
+ \ \"subType\": \"\",\n \"reportId\": \"\"\
+ ,\n \"viewId\": \"\",\n \"columns\"\
+ : [\n {\n \"name\": \"Col1\",\n\
+ \ \"type\": \"VARCHAR\",\n \"\
+ canImport\": true,\n \"selected\": true,\n \
+ \ \"description\": \"\",\n \"isLinkedActive\"\
+ : true,\n \"isAggregate\": false\n \
+ \ },\n {\n \"name\": \"Col2\"\
+ ,\n \"type\": \"VARCHAR\",\n \
+ \ \"canImport\": true,\n \"selected\": true,\n \
+ \ \"description\": \"\",\n \"isLinkedActive\"\
+ : true,\n \"isAggregate\": false\n \
+ \ },\n {\n \"name\": \"Col3\"\
+ ,\n \"type\": \"VARCHAR\",\n \
+ \ \"canImport\": true,\n \"selected\": true,\n \
+ \ \"description\": \"\",\n \"isLinkedActive\"\
+ : true,\n \"isAggregate\": false\n \
+ \ },\n {\n \"name\": \"Col312\"\
+ ,\n \"type\": \"VARCHAR\",\n \
+ \ \"canImport\": true,\n \"selected\": true,\n \
+ \ \"description\": \"\",\n \"isLinkedActive\"\
+ : true,\n \"isAggregate\": false\n \
+ \ },\n {\n \"name\": \"Col4\"\
+ ,\n \"type\": \"VARCHAR\",\n \
+ \ \"canImport\": true,\n \"selected\": true,\n \
+ \ \"description\": \"\",\n \"isLinkedActive\"\
+ : true,\n \"isAggregate\": false\n \
+ \ }\n ],\n \"relationships\": []\n\
+ \ }\n ]\n }\n ]\n\
+ \ }\n ],\n \"configuration\": {\n \"password\"\
+ : \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"\
+ DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"\
+ warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n \
+ \ }\n ```\n \n* This is an example of updating a single table\
+ \ in an existing connection with tables:\n \n ```\n {\n \
+ \ \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\"\
+ : [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\"\
+ : false,\n \"schemas\": [\n {\n \"\
+ name\": \"TS_dataset\",\n \"tables\": [\n \
+ \ {\n \"name\": \"CUSTOMER\",\n \"type\"\
+ : \"TABLE\",\n \"description\": \"\",\n \
+ \ \"selected\": true,\n \"linked\": true,\n \
+ \ \"gid\": 0,\n \"datasetId\": \"-1\",\n \
+ \ \"subType\": \"\",\n \"reportId\": \"\
+ \",\n \"viewId\": \"\",\n \"columns\"\
+ : [],\n \"relationships\": []\n },\n \
+ \ {\n \"name\": \"tpch5k_falcon_default_schema_users\"\
+ ,\n \"type\": \"TABLE\",\n \"description\"\
+ : \"\",\n \"selected\": true,\n \"linked\"\
+ : true,\n \"gid\": 0,\n \"datasetId\"\
+ : \"-1\",\n \"subType\": \"\",\n \"\
+ reportId\": \"\",\n \"viewId\": \"\",\n \
+ \ \"columns\": [\n {\n \"\
+ name\": \"user_id\",\n \"type\": \"INT64\",\n \
+ \ \"canImport\": true,\n \"selected\"\
+ : true,\n \"description\": \"\",\n \
+ \ \"isLinkedActive\": true,\n \"isAggregate\"\
+ : false\n },\n {\n \
+ \ \"name\": \"product_id\",\n \"type\": \"\
+ INT64\",\n \"canImport\": true,\n \
+ \ \"selected\": true,\n \"description\": \"\"\
+ ,\n \"isLinkedActive\": true,\n \
+ \ \"isAggregate\": false\n },\n \
+ \ {\n \"name\": \"user_cost\",\n \
+ \ \"type\": \"INT64\",\n \"canImport\": true,\n\
+ \ \"selected\": true,\n \"description\"\
+ : \"\",\n \"isLinkedActive\": true,\n \
+ \ \"isAggregate\": false\n }\n \
+ \ ],\n \"relationships\": []\n \
+ \ }\n ]\n }\n ]\n }\n \
+ \ ],\n \"configuration\": {\n \"password\": \"\",\n \
+ \ \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \
+ \ \"accountName\": \"thoughtspot_partner\",\n \"warehouse\"\
+ : \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n \
+ \ ```\n\n3. If you are updating a configuration attribute, connection name,\
+ \ or description, you can set `validate` to `false`.\n\n **NOTE:** If the\
+ \ `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly\
+ \ provide the authenticationType property in the payload. If you do not specify\
+ \ authenticationType, the API will default to SERVICE_ACCOUNT as the authentication\
+ \ type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`.\
+ \ The following example shows the configuration attributes for a Snowflake\
+ \ connection:\n ```\n {\n \"configuration\":{\n \"accountName\"\
+ :\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\"\
+ :\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\"\
+ :\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n\
+ \ ```\n\n\n\n\n\n"
operationId: updateConnectionV2
parameters:
- description: Unique ID or name of the connection.
@@ -4129,11 +4255,11 @@ paths:
- application/json
/api/rest/2.0/metadata/copyobject:
post:
- description: "\nMakes a copy of an Answer or Liveboard saved in Atlas \n Version:\
- \ 10.3.0.cl or later\n\n\nCreates a copy of a metadata object.\n\nRequires\
- \ at least view access to the metadata object being copied.\n\nUpon successful\
- \ execution, the API creates a copy of the metadata object specified in the\
- \ API request and returns the ID of the new object.\n\n\n\n\n\n"
+ description: "\nMakes a copy of an Answer or Liveboard \n Version: 10.3.0.cl\
+ \ or later\n\n\nCreates a copy of a metadata object.\n\nRequires at least\
+ \ view access to the metadata object being copied.\n\nUpon successful execution,\
+ \ the API creates a copy of the metadata object specified in the API request\
+ \ and returns the ID of the new object.\n\n\n\n\n\n"
operationId: copyObject
parameters: []
requestBody:
@@ -6575,6 +6701,64 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
+ /api/rest/2.0/system/preferences/communication-channels/configure:
+ post:
+ description: |2+
+
+ Version: 10.14.0.cl or later
+
+
+ Configure communication channel preferences.
+ - Use `cluster_preferences` to update the default preferences for your ThoughtSpot application instance.
+ - If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to specify Org-specific preferences that override the defaults.
+
+ Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action.
+
+
+
+
+
+ operationId: configureCommunicationChannelPreferences
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/configureCommunicationChannelPreferences_request'
+ required: true
+ responses:
+ "204":
+ description: Communication channel preferences successfully updated.
+ "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/system/config:
get:
description: |2+
@@ -6755,6 +6939,83 @@ paths:
- ThoughtSpotRest
x-accepts:
- application/json
+ /api/rest/2.0/system/preferences/communication-channels/search:
+ post:
+ description: |2+
+
+ Version: 10.14.0.cl or later
+
+
+ Fetch communication channel preferences.
+ - Use `cluster_preferences` to fetch the default preferences for your ThoughtSpot application instance.
+ - If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to fetch any Org-specific preferences that override the defaults.
+
+ Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action.
+
+
+
+
+
+ operationId: searchCommunicationChannelPreferences
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/searchCommunicationChannelPreferences_request'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ example_1:
+ value:
+ cluster_preferences:
+ - event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - WEBHOOK
+ org_preferences:
+ - org:
+ id: "583464508"
+ name: test_org
+ preferences:
+ - event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - EMAIL
+ schema:
+ $ref: '#/components/schemas/CommunicationChannelPreferencesResponse'
+ description: Communication channel preferences 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:
+ - System
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
/api/rest/2.0/system/config-update:
post:
description: |2+
@@ -7832,11 +8093,12 @@ paths:
/api/rest/2.0/template/variables/create:
post:
description: "\nCreate a variable which can be used for parameterizing metadata\
- \ objects \n Version: 10.9.0.cl or later\n\n\nAllows creating a variable which\
- \ can be used for parameterizing metadata objects in ThoughtSpot.\n\nRequires\
- \ ADMINISTRATION role and TENANT scope.\n\nThe API endpoint supports the following\
- \ types of variables:\n* CONNECTION_PROPERTY - For connection properties\n\
- * TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL\
+ \ objects \n Version: 10.14.0.cl or later\n\n\nAllows creating a variable\
+ \ which can be used for parameterizing metadata objects in ThoughtSpot.\n\n\
+ Requires 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 supports the following types of variables:\n* CONNECTION_PROPERTY\
+ \ - For connection properties\n* TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL\
\ - For connection properties per principal. In order to use this please contact\
\ support to enable this.\n* FORMULA_VARIABLE - For Formula variables\n\n\
When creating a variable, you need to specify:\n* The variable type\n* A unique\
@@ -7892,12 +8154,13 @@ paths:
- application/json
/api/rest/2.0/template/variables/{identifier}/delete:
post:
- description: "\nDelete a variable \n Version: 10.9.0.cl or later\n\n\nAllows\
+ 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.\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"
+ \ 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"
operationId: deleteVariable
parameters:
- description: Unique id or name of the variable
@@ -7942,16 +8205,16 @@ paths:
- application/json
/api/rest/2.0/template/variables/search:
post:
- description: "\nSearch variables \n Version: 10.9.0.cl or later\n\n\nAllows\
+ description: "\nSearch variables \n Version: 10.14.0.cl or later\n\n\nAllows\
\ searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\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_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES\
- \ - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES -\
- \ Returns only editable 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"
+ 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:
@@ -8001,10 +8264,11 @@ paths:
- application/json
/api/rest/2.0/template/variables/{identifier}/update:
post:
- description: "\nUpdate a variable's properties \n Version: 10.9.0.cl or later\n\
- \n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION\
- \ role and TENANT scope.\n\nThe API endpoint allows updating:\n* The variable\
- \ name\n\n\n\n\n"
+ description: "\nUpdate a variable's name \n Version: 10.14.0.cl or later\n\n\
+ \nAllows updating a variable's properties 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.
@@ -8023,7 +8287,7 @@ paths:
required: true
responses:
"204":
- description: Updating the variable is successful.
+ description: Variable name updated successfully.
"400":
content:
application/json:
@@ -8054,21 +8318,22 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
- /api/rest/2.0/template/variables/update:
+ /api/rest/2.0/template/variables/update-values:
post:
- description: "\nUpdate values for multiple variables \n Version: 10.9.0.cl or\
- \ later\n\n\nAllows updating values for multiple variables in ThoughtSpot.\n\
- \nRequires ADMINISTRATION role.\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, CLEAR)\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* CLEAR - Removes all constrains\
- \ for a given variable, scope is ignored\n\n\n\n\n\n"
+ 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, CLEAR)\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* CLEAR - Removes all\
+ \ constrains for a given variable, scope is ignored\n\n\n\n\n\n"
operationId: updateVariableValues
parameters: []
requestBody:
@@ -8079,7 +8344,7 @@ paths:
required: true
responses:
"204":
- description: Updating variable values is successful.
+ description: Variable values updated successfully.
"400":
content:
application/json:
@@ -8706,69 +8971,498 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
-components:
- schemas:
- ErrorResponse:
- example:
- error: "{}"
- properties:
- error:
- nullable: true
- type: object
- type: object
- GetTokenResponse:
- example:
- creation_time_in_millis: 0.8008282
- valid_for_username: valid_for_username
- valid_for_user_id: valid_for_user_id
- expiration_time_in_millis: 6.0274563
- token: token
- properties:
- token:
- description: Bearer auth token.
- type: string
- creation_time_in_millis:
- description: Token creation time in milliseconds.
- format: float
- type: number
- expiration_time_in_millis:
- description: Token expiration time in milliseconds.
- format: float
- type: number
- valid_for_user_id:
- description: Username to whom the token is issued.
- type: string
- valid_for_username:
- description: Unique identifier of the user to whom the token is issued.
- type: string
- required:
- - creation_time_in_millis
- - expiration_time_in_millis
- - token
- - valid_for_user_id
- - valid_for_username
- type: object
- RiseSetter:
- properties:
- field:
- type: string
- path:
- type: string
- required:
- - field
- - path
- type: object
- User:
- example:
- first_login_time_in_millis: 5.962134
- tenant_id: tenant_id
- privileges:
- - privileges
- - privileges
- preferred_locale: preferred_locale
- account_type: LOCAL_USER
- group_mask: 5
- onboarding_experience_completed: true
+ /api/rest/2.0/webhooks/create:
+ post:
+ description: |2+
+
+ Version: 10.14.0.cl or later
+
+
+ Creates a new webhook configuration to receive notifications for specified events. The webhook will be triggered when the configured events occur in the system.
+
+ 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.
+
+
+
+
+
+ operationId: createWebhookConfiguration
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/createWebhookConfiguration_request'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ example_1:
+ description: Basic webhook with Bearer token authentication
+ value:
+ id: f47ac10b-58cc-4372-a567-0e02b2c3d479
+ name: My Liveboard Webhook
+ description: Webhook to notify external system about liveboard
+ schedules
+ org:
+ id: "0"
+ name: Primary
+ url: https://myapp.example.com/webhooks/thoughtspot
+ url_params:
+ api_key: abc123
+ version: v1
+ events:
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ BEARER_TOKEN: '***'
+ signature_verification:
+ type: HMAC_SHA256
+ header: X-Webhook-Signature
+ algorithm: SHA256
+ secret: '***'
+ created_at: 2025-08-21T21:57:10.243089030Z
+ last_modified_at: 2025-08-21T21:57:10.243089030Z
+ created_by:
+ id: 8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b
+ name: sarah_chen
+ last_modified_by:
+ id: 8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b
+ name: sarah_chen
+ example_2:
+ description: Webhook with OAuth2 authentication
+ value:
+ id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
+ name: OAuth2 Webhook
+ description: Webhook with OAuth2 client credentials
+ org:
+ id: "0"
+ name: Primary
+ url: https://api.example.com/webhooks
+ events:
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ OAUTH2:
+ authorization_url: https://auth.example.com/oauth2/authorize
+ client_id: client_123
+ client_secret: '***'
+ created_at: 2025-08-21T22:15:30.123456789Z
+ last_modified_at: 2025-08-21T22:15:30.123456789Z
+ created_by:
+ id: 7d5e9f2a-4b8c-4d6e-9a3b-5c7e1f4a8b2d
+ name: mike_rodriguez
+ schema:
+ $ref: '#/components/schemas/WebhookResponse'
+ description: Webhook configuration 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:
+ - Webhooks
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /api/rest/2.0/webhooks/delete:
+ post:
+ description: |2+
+
+ Version: 10.14.0.cl or later
+
+
+ Deletes one or more webhook configurations by their unique id or name. Returns status of each deletion operation, including successfully deleted webhooks and any failures with error details.
+
+ 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.
+
+
+
+
+
+ operationId: deleteWebhookConfigurations
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/deleteWebhookConfigurations_request'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ example_1:
+ description: Successful deletion of multiple webhooks
+ value:
+ deleted_count: 2
+ failed_count: 0
+ deleted_webhooks:
+ - id: b9e3d8f2-4c7a-4e1b-8d3c-5f9a2b7e4c6d
+ name: Old Webhook 1
+ description: First webhook to be deleted
+ org:
+ id: "0"
+ name: Primary
+ url: https://old-service.example.com/webhook1
+ events:
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ BEARER_TOKEN: '***'
+ created_at: 2025-08-21T15:30:00.000000000Z
+ last_modified_at: 2025-08-21T15:30:00.000000000Z
+ created_by:
+ id: 1f4e7b2d-9c3a-4e6f-8b1d-3e7c5a9b2f4e
+ name: jennifer_patel
+ - id: e7c4a1f8-2b5d-4a9e-7c3f-8b1e5d4a7c9b
+ name: Old Webhook 2
+ description: Second webhook to be deleted
+ org:
+ id: "0"
+ name: Primary
+ url: https://old-service.example.com/webhook2
+ events:
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ API_KEY:
+ key: X-API-Key
+ value: '***'
+ created_at: 2025-08-21T16:45:30.123456789Z
+ last_modified_at: 2025-08-21T16:45:30.123456789Z
+ created_by:
+ id: 9a5c2e8f-4b7d-4c1e-9f2a-6c8e3b5d7a4c
+ name: david_thompson
+ failed_webhooks: []
+ example_2:
+ description: Partial failure during deletion
+ value:
+ deleted_count: 1
+ failed_count: 1
+ deleted_webhooks:
+ - id: c8f2a5e9-3d6b-4f1e-a8c2-7e4b1d9f5a3c
+ name: Successfully Deleted Webhook
+ description: This webhook was deleted successfully
+ org:
+ id: "0"
+ name: Primary
+ url: https://service.example.com/webhook
+ events:
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ NO_AUTH: ""
+ created_at: 2025-08-21T18:20:15.456789012Z
+ last_modified_at: 2025-08-21T18:20:15.456789012Z
+ created_by:
+ id: 6e9c4f2a-8b5d-4e1f-9c3a-5f8b2e7d4a6c
+ name: emma_wang
+ failed_webhooks:
+ - id: a3f7c1e4-9b2d-4a6e-8f3c-1e5b7a9c4f2e
+ name: Non-existent Webhook
+ error_message: Webhook not found or access denied
+ schema:
+ $ref: '#/components/schemas/WebhookDeleteResponse'
+ description: Webhook configurations 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.
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Unexpected error
+ tags:
+ - Webhooks
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /api/rest/2.0/webhooks/search:
+ post:
+ description: |2+
+
+ Version: 10.14.0.cl or later
+
+
+ Searches for webhook configurations based on various criteria such as Org, webhook identifier, event type, with support for pagination and sorting. Returns matching webhook configurations with their complete details.
+
+ 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.
+
+
+
+
+
+ operationId: searchWebhookConfigurations
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/searchWebhookConfigurations_request'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ example_1:
+ description: Search results with multiple webhooks
+ value:
+ webhooks:
+ - id: f47ac10b-58cc-4372-a567-0e02b2c3d479
+ name: Liveboard Schedule Webhook
+ description: Webhook for liveboard schedule notifications
+ org:
+ id: "0"
+ name: Primary
+ url: https://myapp.example.com/webhooks
+ url_params:
+ api_key: abc123
+ events:
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ BEARER_TOKEN: '***'
+ signature_verification:
+ type: HMAC_SHA256
+ header: X-Webhook-Signature
+ algorithm: SHA256
+ secret: '***'
+ created_at: 2025-08-21T21:57:10.243089030Z
+ last_modified_at: 2025-08-21T22:10:15.123456789Z
+ created_by:
+ id: 8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b
+ name: sarah_chen
+ last_modified_by:
+ id: 2c9a7e4f-6b3d-4a8e-9f1c-5e7a3b9c2d6f
+ name: alex_kim
+ - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
+ name: API Key Webhook
+ description: Webhook with API key authentication
+ org:
+ id: "0"
+ name: Primary
+ url: https://api.example.com/notifications
+ events:
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ API_KEY:
+ key: X-API-Key
+ value: '***'
+ created_at: 2025-08-21T20:30:45.987654321Z
+ last_modified_at: 2025-08-21T20:30:45.987654321Z
+ created_by:
+ id: 7d5e9f2a-4b8c-4d6e-9a3b-5c7e1f4a8b2d
+ name: mike_rodriguez
+ pagination:
+ record_offset: 0
+ record_size: 50
+ total_count: 2
+ has_more: false
+ example_2:
+ description: Empty search results
+ value:
+ webhooks: []
+ pagination:
+ record_offset: 0
+ record_size: 50
+ total_count: 0
+ has_more: false
+ schema:
+ $ref: '#/components/schemas/WebhookSearchResponse'
+ description: Webhook configurations 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:
+ - Webhooks
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /api/rest/2.0/webhooks/{webhook_identifier}/update:
+ post:
+ description: |2+
+
+ Version: 10.14.0.cl or later
+
+
+ Updates an existing webhook configuration by its unique id or name. Only the provided fields will be updated.
+
+ 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.
+
+
+
+
+
+ operationId: updateWebhookConfiguration
+ parameters:
+ - description: Unique ID or name of the webhook configuration.
+ explode: false
+ in: path
+ name: webhook_identifier
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/updateWebhookConfiguration_request'
+ required: true
+ responses:
+ "204":
+ description: Webhook configuration 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:
+ - Webhooks
+ - ThoughtSpotRest
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+components:
+ schemas:
+ ErrorResponse:
+ example:
+ error: "{}"
+ properties:
+ error:
+ nullable: true
+ type: object
+ type: object
+ GetTokenResponse:
+ example:
+ creation_time_in_millis: 0.8008282
+ valid_for_username: valid_for_username
+ valid_for_user_id: valid_for_user_id
+ expiration_time_in_millis: 6.0274563
+ token: token
+ properties:
+ token:
+ description: Bearer auth token.
+ type: string
+ creation_time_in_millis:
+ description: Token creation time in milliseconds.
+ format: float
+ type: number
+ expiration_time_in_millis:
+ description: Token expiration time in milliseconds.
+ format: float
+ type: number
+ valid_for_user_id:
+ description: Username to whom the token is issued.
+ type: string
+ valid_for_username:
+ description: Unique identifier of the user to whom the token is issued.
+ type: string
+ required:
+ - creation_time_in_millis
+ - expiration_time_in_millis
+ - token
+ - valid_for_user_id
+ - valid_for_username
+ type: object
+ RiseSetter:
+ properties:
+ field:
+ type: string
+ path:
+ type: string
+ required:
+ - field
+ - path
+ type: object
+ User:
+ example:
+ first_login_time_in_millis: 5.962134
+ tenant_id: tenant_id
+ privileges:
+ - privileges
+ - privileges
+ preferred_locale: preferred_locale
+ account_type: LOCAL_USER
+ group_mask: 5
+ onboarding_experience_completed: true
user_inherited_groups:
- name: name
id: id
@@ -8818,6 +9512,7 @@ components:
user_parameters: "{}"
deleted: true
extended_properties: "{}"
+ variable_values: "{}"
name: name
modifier_id: modifier_id
complete_detail: true
@@ -9045,6 +9740,10 @@ components:
via JWToken
nullable: true
type: object
+ variable_values:
+ description: Formula Variables which are specified for the user via JWToken
+ nullable: true
+ type: object
required:
- display_name
- id
@@ -9289,6 +9988,140 @@ components:
nullable: true
type: object
type: object
+ OrgPreferenceSearchCriteriaInput:
+ properties:
+ org_identifier:
+ description: Unique identifier or name of the org
+ type: string
+ event_types:
+ description: "Event types to search for. If not provided, all event types\
+ \ for this org are returned."
+ items:
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ nullable: true
+ type: array
+ required:
+ - org_identifier
+ type: object
+ CommunicationChannelPreferencesResponse:
+ example:
+ cluster_preferences:
+ - event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - EMAIL
+ - EMAIL
+ - event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - EMAIL
+ - EMAIL
+ org_preferences:
+ - preferences:
+ - event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - EMAIL
+ - EMAIL
+ - event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - EMAIL
+ - EMAIL
+ org:
+ name: name
+ id: id
+ - preferences:
+ - event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - EMAIL
+ - EMAIL
+ - event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - EMAIL
+ - EMAIL
+ org:
+ name: name
+ id: id
+ properties:
+ cluster_preferences:
+ description: Cluster-level default configurations.
+ items:
+ $ref: '#/components/schemas/EventChannelConfig'
+ nullable: true
+ type: array
+ org_preferences:
+ description: Org-specific configurations.
+ items:
+ $ref: '#/components/schemas/OrgChannelConfigResponse'
+ nullable: true
+ type: array
+ type: object
+ EventChannelConfig:
+ example:
+ event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - EMAIL
+ - EMAIL
+ properties:
+ event_type:
+ description: Type of event for which communication channels are configured
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ channels:
+ description: Communication channels enabled for this event type. Empty array
+ indicates no channels are enabled.
+ items:
+ enum:
+ - EMAIL
+ - WEBHOOK
+ type: string
+ type: array
+ required:
+ - channels
+ - event_type
+ type: object
+ OrgChannelConfigResponse:
+ example:
+ preferences:
+ - event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - EMAIL
+ - EMAIL
+ - event_type: LIVEBOARD_SCHEDULE
+ channels:
+ - EMAIL
+ - EMAIL
+ org:
+ name: name
+ id: id
+ properties:
+ org:
+ $ref: '#/components/schemas/OrgDetails'
+ preferences:
+ description: Event-specific communication channel configurations for this
+ org
+ items:
+ $ref: '#/components/schemas/EventChannelConfig'
+ type: array
+ required:
+ - org
+ - preferences
+ type: object
+ OrgDetails:
+ example:
+ name: name
+ id: id
+ properties:
+ id:
+ description: Unique id of the org
+ type: string
+ name:
+ description: Name of the org
+ type: string
+ required:
+ - id
+ - name
+ type: object
OrgResponse:
example:
visibility: SHOW
@@ -10522,8 +11355,8 @@ components:
type: object
ColumnSecurityRuleResponse:
example:
- columnSecurityRules:
- - sourceTableDetails:
+ column_security_rules:
+ - source_table_details:
name: name
id: id
column:
@@ -10534,7 +11367,7 @@ components:
id: id
- name: name
id: id
- - sourceTableDetails:
+ - source_table_details:
name: name
id: id
column:
@@ -10545,19 +11378,19 @@ components:
id: id
- name: name
id: id
- objId: objId
- guid: guid
+ obj_id: obj_id
+ table_guid: table_guid
properties:
- guid:
+ table_guid:
description: GUID of the table for which the column security rules are fetched
nullable: true
type: string
- objId:
+ obj_id:
description: Object ID of the table for which the column security rules
are fetched
nullable: true
type: string
- columnSecurityRules:
+ column_security_rules:
description: Array containing column security rule objects
items:
$ref: '#/components/schemas/ColumnSecurityRule'
@@ -10566,7 +11399,7 @@ components:
type: object
ColumnSecurityRule:
example:
- sourceTableDetails:
+ source_table_details:
name: name
id: id
column:
@@ -10586,7 +11419,7 @@ components:
$ref: '#/components/schemas/ColumnSecurityRuleGroup'
nullable: true
type: array
- sourceTableDetails:
+ source_table_details:
$ref: '#/components/schemas/ColumnSecurityRuleSourceTable'
required:
- column
@@ -11887,6 +12720,8 @@ components:
- ALLOW_NON_EMBED_FULL_APP_ACCESS
- CAN_ACCESS_ANALYST_STUDIO
- CAN_MANAGE_ANALYST_STUDIO
+ - CAN_VIEW_FOLDERS
+ - CAN_MODIDY_FOLDERS
- PREVIEW_DOCUMENT_SEARCH
- CAN_SETUP_VERSION_CONTROL
- CAN_MANAGE_WEBHOOKS
@@ -12496,17 +13331,40 @@ components:
description: Unique ID or name of the variable
nullable: true
type: string
- type:
- description: Type of variable
- enum:
- - CONNECTION_PROPERTY
- - TABLE_MAPPING
- - CONNECTION_PROPERTY_PER_PRINCIPAL
+ type:
+ description: Type of variable
+ enum:
+ - CONNECTION_PROPERTY
+ - TABLE_MAPPING
+ - CONNECTION_PROPERTY_PER_PRINCIPAL
+ nullable: true
+ type: string
+ name_pattern:
+ description: A pattern to match case-insensitive name of the variable. User
+ % for a wildcard match
+ nullable: true
+ type: string
+ type: object
+ ValueScopeInput:
+ description: Input for variable scope in search
+ properties:
+ org_identifier:
+ description: The unique name of the org
+ nullable: true
+ type: string
+ principal_type:
+ description: Principal type
+ enum:
+ - USER
+ - USER_GROUP
+ nullable: true
+ type: string
+ principal_identifier:
+ description: Unique ID or name of the principal
nullable: true
type: string
- name_pattern:
- description: A pattern to match case-insensitive name of the variable. User
- % for a wildcard match
+ model_identifier:
+ description: Model Identifier
nullable: true
type: string
type: object
@@ -12517,11 +13375,17 @@ components:
values:
- principal_identifier: principal_identifier
org_identifier: org_identifier
+ value_list:
+ - value_list
+ - value_list
principal_type: USER
priority: 0
value: value
- principal_identifier: principal_identifier
org_identifier: org_identifier
+ value_list:
+ - value_list
+ - value_list
principal_type: USER
priority: 0
value: value
@@ -12561,6 +13425,9 @@ components:
example:
principal_identifier: principal_identifier
org_identifier: org_identifier
+ value_list:
+ - value_list
+ - value_list
principal_type: USER
priority: 0
value: value
@@ -12569,6 +13436,12 @@ components:
description: The value of the variable
nullable: true
type: string
+ value_list:
+ description: The value of the variable if it is a list type
+ items:
+ type: string
+ nullable: true
+ type: array
org_identifier:
description: The unique name of the org
type: string
@@ -12763,6 +13636,370 @@ components:
nullable: true
type: string
type: object
+ WebhookSortOptionsInput:
+ properties:
+ field_name:
+ default: CREATED
+ description: Name of the field to apply the sort on.
+ enum:
+ - CREATED
+ - MODIFIED
+ - NAME
+ nullable: true
+ type: string
+ order:
+ default: DESC
+ description: "Sort order: ASC (Ascending) or DESC (Descending)."
+ enum:
+ - ASC
+ - DESC
+ nullable: true
+ type: string
+ type: object
+ WebhookSearchResponse:
+ example:
+ pagination:
+ total_count: 1
+ record_size: 6
+ has_more: true
+ record_offset: 0
+ webhooks:
+ - creation_time_in_millis: 0.8008282
+ org:
+ name: name
+ id: id
+ signature_verification:
+ header: header
+ secret: secret
+ type: HMAC_SHA256
+ algorithm: SHA256
+ description: description
+ modification_time_in_millis: 6.0274563
+ last_modified_by:
+ name: name
+ id: id
+ created_by:
+ name: name
+ id: id
+ url: url
+ url_params: "{}"
+ name: name
+ id: id
+ events:
+ - LIVEBOARD_SCHEDULE
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ OAUTH2:
+ authorization_url: authorization_url
+ client_secret: client_secret
+ client_id: client_id
+ API_KEY:
+ value: value
+ key: key
+ BEARER_TOKEN: BEARER_TOKEN
+ BASIC_AUTH:
+ password: password
+ username: username
+ - creation_time_in_millis: 0.8008282
+ org:
+ name: name
+ id: id
+ signature_verification:
+ header: header
+ secret: secret
+ type: HMAC_SHA256
+ algorithm: SHA256
+ description: description
+ modification_time_in_millis: 6.0274563
+ last_modified_by:
+ name: name
+ id: id
+ created_by:
+ name: name
+ id: id
+ url: url
+ url_params: "{}"
+ name: name
+ id: id
+ events:
+ - LIVEBOARD_SCHEDULE
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ OAUTH2:
+ authorization_url: authorization_url
+ client_secret: client_secret
+ client_id: client_id
+ API_KEY:
+ value: value
+ key: key
+ BEARER_TOKEN: BEARER_TOKEN
+ BASIC_AUTH:
+ password: password
+ username: username
+ properties:
+ webhooks:
+ description: List of webhook configurations matching the search criteria.
+ items:
+ $ref: '#/components/schemas/WebhookResponse'
+ type: array
+ pagination:
+ $ref: '#/components/schemas/WebhookPagination'
+ required:
+ - pagination
+ - webhooks
+ type: object
+ WebhookResponse:
+ example:
+ creation_time_in_millis: 0.8008282
+ org:
+ name: name
+ id: id
+ signature_verification:
+ header: header
+ secret: secret
+ type: HMAC_SHA256
+ algorithm: SHA256
+ description: description
+ modification_time_in_millis: 6.0274563
+ last_modified_by:
+ name: name
+ id: id
+ created_by:
+ name: name
+ id: id
+ url: url
+ url_params: "{}"
+ name: name
+ id: id
+ events:
+ - LIVEBOARD_SCHEDULE
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ OAUTH2:
+ authorization_url: authorization_url
+ client_secret: client_secret
+ client_id: client_id
+ API_KEY:
+ value: value
+ key: key
+ BEARER_TOKEN: BEARER_TOKEN
+ BASIC_AUTH:
+ password: password
+ username: username
+ properties:
+ id:
+ description: Unique identifier of the webhook configuration.
+ type: string
+ name:
+ description: Name of the webhook configuration.
+ type: string
+ description:
+ description: Description of the webhook configuration.
+ nullable: true
+ type: string
+ org:
+ $ref: '#/components/schemas/WebhookOrg'
+ url:
+ description: The webhook endpoint URL.
+ type: string
+ url_params:
+ description: Additional URL parameters as key-value pairs.
+ nullable: true
+ type: object
+ events:
+ description: List of events this webhook subscribes to.
+ items:
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ type: array
+ authentication:
+ $ref: '#/components/schemas/WebhookAuthentication'
+ signature_verification:
+ $ref: '#/components/schemas/WebhookSignatureVerification'
+ creation_time_in_millis:
+ description: Creation time of the webhook configuration in milliseconds.
+ format: float
+ type: number
+ modification_time_in_millis:
+ description: Last modified time of the webhook configuration in milliseconds.
+ format: float
+ type: number
+ created_by:
+ $ref: '#/components/schemas/WebhookUser'
+ last_modified_by:
+ $ref: '#/components/schemas/WebhookUser'
+ required:
+ - creation_time_in_millis
+ - events
+ - id
+ - modification_time_in_millis
+ - name
+ - url
+ type: object
+ WebhookOrg:
+ example:
+ name: name
+ id: id
+ properties:
+ id:
+ description: Unique identifier of the org.
+ type: string
+ name:
+ description: Name of the org.
+ type: string
+ required:
+ - id
+ - name
+ type: object
+ WebhookAuthentication:
+ example:
+ OAUTH2:
+ authorization_url: authorization_url
+ client_secret: client_secret
+ client_id: client_id
+ API_KEY:
+ value: value
+ key: key
+ BEARER_TOKEN: BEARER_TOKEN
+ BASIC_AUTH:
+ password: password
+ username: username
+ properties:
+ API_KEY:
+ $ref: '#/components/schemas/WebhookAuthApiKey'
+ BASIC_AUTH:
+ $ref: '#/components/schemas/WebhookAuthBasicAuth'
+ BEARER_TOKEN:
+ description: Redacted Bearer token authentication configuration.
+ nullable: true
+ type: string
+ OAUTH2:
+ $ref: '#/components/schemas/WebhookAuthOAuth2'
+ type: object
+ WebhookAuthApiKey:
+ example:
+ value: value
+ key: key
+ properties:
+ key:
+ description: The header or query parameter name for the API key.
+ type: string
+ value:
+ description: The API key value.
+ type: string
+ required:
+ - key
+ - value
+ type: object
+ WebhookAuthBasicAuth:
+ example:
+ password: password
+ username: username
+ properties:
+ username:
+ description: Username for basic authentication.
+ type: string
+ password:
+ description: Password for basic authentication.
+ type: string
+ required:
+ - password
+ - username
+ type: object
+ WebhookAuthOAuth2:
+ example:
+ authorization_url: authorization_url
+ client_secret: client_secret
+ client_id: client_id
+ properties:
+ authorization_url:
+ description: OAuth2 authorization server URL.
+ type: string
+ client_id:
+ description: OAuth2 client identifier.
+ type: string
+ client_secret:
+ description: OAuth2 client secret key.
+ type: string
+ required:
+ - authorization_url
+ - client_id
+ - client_secret
+ type: object
+ WebhookSignatureVerification:
+ example:
+ header: header
+ secret: secret
+ type: HMAC_SHA256
+ algorithm: SHA256
+ properties:
+ type:
+ description: Signature verification method type.
+ enum:
+ - HMAC_SHA256
+ type: string
+ header:
+ description: HTTP header where the signature is sent.
+ type: string
+ algorithm:
+ description: Hash algorithm used for signature verification.
+ enum:
+ - SHA256
+ type: string
+ secret:
+ description: Shared secret used for HMAC signature generation.
+ type: string
+ required:
+ - algorithm
+ - header
+ - secret
+ - type
+ type: object
+ WebhookUser:
+ example:
+ name: name
+ id: id
+ properties:
+ id:
+ description: Unique identifier of the user.
+ type: string
+ name:
+ description: Name of the user.
+ type: string
+ required:
+ - id
+ - name
+ 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
GenericInfo:
example:
name: name
@@ -12885,8 +14122,7 @@ components:
description: " Type of object.\n \n\nRequired if the name of the object\
\ is set as the identifier. This attribute is optional when the object\
\ GUID is specified as the identifier.\n \n\n Specify the object type\
- \ as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not\
- \ supported."
+ \ as `LOGICAL_TABLE`."
enum:
- LOGICAL_TABLE
nullable: true
@@ -13167,8 +14403,7 @@ components:
description: " Type of object.\n \n\nRequired if the name of the object\
\ is set as the identifier. This attribute is optional when the object\
\ GUID is specified as the identifier.\n \n\n Specify the object type\
- \ as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not\
- \ supported."
+ \ as `LOGICAL_TABLE`."
enum:
- LOGICAL_TABLE
nullable: true
@@ -13402,6 +14637,60 @@ components:
required:
- name
type: object
+ EventChannelConfigInput:
+ properties:
+ event_type:
+ description: Type of event for which communication channels are configured
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ channels:
+ description: Communication channels enabled for this event type. Empty array
+ disables all channels for this event.
+ items:
+ enum:
+ - EMAIL
+ - WEBHOOK
+ type: string
+ type: array
+ required:
+ - channels
+ - event_type
+ type: object
+ OrgChannelConfigInput:
+ properties:
+ org_identifier:
+ description: Unique identifier or name of the org
+ type: string
+ operation:
+ default: REPLACE
+ description: "Operation to perform. REPLACE: Update preferences (default).\
+ \ RESET: Remove org-specific configurations, causing fallback to cluster-level\
+ \ preferences."
+ enum:
+ - REPLACE
+ - RESET
+ nullable: true
+ type: string
+ preferences:
+ description: Event-specific configurations. Required for REPLACE operation.
+ items:
+ $ref: '#/components/schemas/EventChannelConfigInput'
+ nullable: true
+ type: array
+ reset_events:
+ description: "Event types to reset. Required for RESET operation. Org-specific\
+ \ configurations for these events will be removed, causing fallback to\
+ \ cluster-level preferences."
+ items:
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ nullable: true
+ type: array
+ required:
+ - org_identifier
+ type: object
TagMetadataTypeInput:
properties:
type:
@@ -13473,6 +14762,8 @@ components:
- ALLOW_NON_EMBED_FULL_APP_ACCESS
- CAN_ACCESS_ANALYST_STUDIO
- CAN_MANAGE_ANALYST_STUDIO
+ - CAN_MODIFY_FOLDERS
+ - CAN_VIEW_FOLDERS
- PREVIEW_DOCUMENT_SEARCH
- CAN_SETUP_VERSION_CONTROL
- CAN_DOWNLOAD_VISUALS
@@ -13591,6 +14882,13 @@ components:
\ 10.12.0.cl or later\n"
nullable: true
type: boolean
+ export_with_column_aliases:
+ default: false
+ description: "Boolean flag indicating whether to export column aliases of\
+ \ the model. This will only be respected when the object can have column\
+ \ aliases. \n Version: 10.13.0.cl or later\n"
+ nullable: true
+ type: boolean
type: object
ResponseCopyObject:
example:
@@ -14447,6 +15745,8 @@ components:
- CAN_ACCESS_ANALYST_STUDIO
- CAN_MANAGE_ANALYST_STUDIO
- PREVIEW_DOCUMENT_SEARCH
+ - CAN_MODIFY_FOLDERS
+ - CAN_VIEW_FOLDERS
- CAN_SETUP_VERSION_CONTROL
- PREVIEW_THOUGHTSPOT_SAGE
- CAN_MANAGE_WEBHOOKS
@@ -15448,13 +16748,35 @@ components:
nullable: true
type: string
required:
- - success
+ - success
+ type: object
+ VariableUpdateAssignmentInput:
+ description: Input for variable value update in batch operations
+ properties:
+ variable_identifier:
+ description: ID or Name of the variable
+ type: string
+ variable_values:
+ description: Values of the variable
+ items:
+ type: string
+ type: array
+ operation:
+ description: Operation to perform
+ enum:
+ - ADD
+ - REMOVE
+ - REPLACE
+ - CLEAR
+ type: string
+ required:
+ - operation
+ - variable_identifier
+ - variable_values
type: object
- InputVariableValue:
+ VariableUpdateScopeInput:
+ description: Input for variable value update in batch operations
properties:
- value:
- description: The connection property value
- type: string
org_identifier:
description: The unique name of the org
type: string
@@ -15469,30 +16791,17 @@ components:
description: Unique ID or name of the principal
nullable: true
type: string
+ model_identifier:
+ description: Unique ID of the model
+ nullable: true
+ type: string
priority:
- description: "The priority assigned to this value. If there are 2 matching\
- \ values, the one with the higher priority will be picked."
+ description: Priority level
format: int32
nullable: true
type: integer
required:
- org_identifier
- - value
- type: object
- VariableValueInput:
- description: Input for variable value update
- properties:
- variable_identifier:
- description: ID or Name of the variable
- type: string
- variable_values:
- description: Values of the variable
- items:
- $ref: '#/components/schemas/InputVariableValue'
- type: array
- required:
- - variable_identifier
- - variable_values
type: object
CreateEmailCustomizationResponse:
example:
@@ -15660,6 +16969,212 @@ components:
- connection_identifier
- table_name
type: object
+ WebhookAuthenticationInput:
+ properties:
+ API_KEY:
+ $ref: '#/components/schemas/WebhookAuthApiKeyInput'
+ BASIC_AUTH:
+ $ref: '#/components/schemas/WebhookAuthBasicAuthInput'
+ BEARER_TOKEN:
+ description: Bearer token authentication configuration.
+ nullable: true
+ type: string
+ OAUTH2:
+ $ref: '#/components/schemas/WebhookAuthOAuth2Input'
+ type: object
+ WebhookAuthApiKeyInput:
+ properties:
+ key:
+ description: The header or query parameter name for the API key.
+ type: string
+ value:
+ description: The API key value.
+ type: string
+ required:
+ - key
+ - value
+ type: object
+ WebhookAuthBasicAuthInput:
+ properties:
+ username:
+ description: Username for basic authentication.
+ type: string
+ password:
+ description: Password for basic authentication.
+ type: string
+ required:
+ - password
+ - username
+ type: object
+ WebhookAuthOAuth2Input:
+ properties:
+ authorization_url:
+ description: OAuth2 authorization server URL.
+ type: string
+ client_id:
+ description: OAuth2 client identifier.
+ type: string
+ client_secret:
+ description: OAuth2 client secret key.
+ type: string
+ required:
+ - authorization_url
+ - client_id
+ - client_secret
+ type: object
+ WebhookSignatureVerificationInput:
+ properties:
+ type:
+ description: Signature verification method type.
+ enum:
+ - HMAC_SHA256
+ type: string
+ header:
+ description: HTTP header where the signature is sent.
+ type: string
+ algorithm:
+ description: Hash algorithm used for signature verification.
+ enum:
+ - SHA256
+ type: string
+ secret:
+ description: Shared secret used for HMAC signature generation.
+ type: string
+ required:
+ - algorithm
+ - header
+ - secret
+ - type
+ type: object
+ WebhookDeleteResponse:
+ example:
+ failed_webhooks:
+ - name: name
+ id: id
+ error: error
+ - name: name
+ id: id
+ error: error
+ deleted_webhooks:
+ - creation_time_in_millis: 0.8008282
+ org:
+ name: name
+ id: id
+ signature_verification:
+ header: header
+ secret: secret
+ type: HMAC_SHA256
+ algorithm: SHA256
+ description: description
+ modification_time_in_millis: 6.0274563
+ last_modified_by:
+ name: name
+ id: id
+ created_by:
+ name: name
+ id: id
+ url: url
+ url_params: "{}"
+ name: name
+ id: id
+ events:
+ - LIVEBOARD_SCHEDULE
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ OAUTH2:
+ authorization_url: authorization_url
+ client_secret: client_secret
+ client_id: client_id
+ API_KEY:
+ value: value
+ key: key
+ BEARER_TOKEN: BEARER_TOKEN
+ BASIC_AUTH:
+ password: password
+ username: username
+ - creation_time_in_millis: 0.8008282
+ org:
+ name: name
+ id: id
+ signature_verification:
+ header: header
+ secret: secret
+ type: HMAC_SHA256
+ algorithm: SHA256
+ description: description
+ modification_time_in_millis: 6.0274563
+ last_modified_by:
+ name: name
+ id: id
+ created_by:
+ name: name
+ id: id
+ url: url
+ url_params: "{}"
+ name: name
+ id: id
+ events:
+ - LIVEBOARD_SCHEDULE
+ - LIVEBOARD_SCHEDULE
+ authentication:
+ OAUTH2:
+ authorization_url: authorization_url
+ client_secret: client_secret
+ client_id: client_id
+ API_KEY:
+ value: value
+ key: key
+ BEARER_TOKEN: BEARER_TOKEN
+ BASIC_AUTH:
+ password: password
+ username: username
+ failed_count: 6
+ deleted_count: 0
+ properties:
+ deleted_count:
+ description: Number of webhooks successfully deleted.
+ format: int32
+ type: integer
+ failed_count:
+ description: Number of webhooks that failed to delete.
+ format: int32
+ type: integer
+ deleted_webhooks:
+ description: List of successfully deleted webhooks.
+ items:
+ $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
Runtime_Filter:
description: List of runtime parameters need to set during the session.
properties:
@@ -15786,6 +17301,16 @@ components:
type: string
type: array
type: object
+ sendAgentMessage_request:
+ properties:
+ messages:
+ description: messages to be sent to the agent
+ items:
+ type: string
+ type: array
+ required:
+ - messages
+ type: object
sendAgentMessageStreaming_request:
properties:
conversation_identifier:
@@ -15957,6 +17482,14 @@ components:
items:
type: string
type: array
+ user_parameters:
+ allOf:
+ - $ref: '#/components/schemas/User_Parameter_Options'
+ description: |-
+
Deprecated: 10.4.0.cl and later
+
+
+ Define attributes such as Runtime filters and Runtime parameters to send security entitlements to a user session. For more information, see [Documentation](https://developers.thoughtspot.com/docs/abac-user-parameters).
required:
- username
type: object
@@ -16015,6 +17548,14 @@ components:
items:
type: string
type: array
+ user_parameters:
+ allOf:
+ - $ref: '#/components/schemas/User_Parameter_Options'
+ description: |-
+
Deprecated: 10.4.0.cl and later
+
+
+ Define attributes such as Runtime filters and Runtime parameters to send security entitlements to a user session. For more information, see [Documentation](https://developers.thoughtspot.com/docs/abac-user-parameters).
required:
- username
type: object
@@ -16971,7 +18512,9 @@ components:
description: Unique ID of the DBT connection.
type: string
model_tables:
- description: List of Models and their respective Tables
+ description: |-
+ List of Models and their respective Tables
+ Example: '[{"model_name": "model_name", "tables": ["table_name"]}]'
format: json
type: string
import_worksheets:
@@ -16982,8 +18525,9 @@ components:
- SELECTED
type: string
worksheets:
- description: List of worksheets is mandatory when import_Worksheets is type
- SELECTED
+ description: |-
+ List of worksheets is mandatory when import_Worksheets is type SELECTED
+ Example: ["worksheet_name"]
format: json
type: string
file_content:
@@ -16995,6 +18539,7 @@ components:
required:
- dbt_connection_identifier
- import_worksheets
+ - model_tables
type: object
updateDbtConnection_request:
properties:
@@ -17126,6 +18671,8 @@ components:
- ALLOW_NON_EMBED_FULL_APP_ACCESS
- CAN_ACCESS_ANALYST_STUDIO
- CAN_MANAGE_ANALYST_STUDIO
+ - CAN_MODIFY_FOLDERS
+ - CAN_VIEW_FOLDERS
- PREVIEW_DOCUMENT_SEARCH
- CAN_SETUP_VERSION_CONTROL
- CAN_DOWNLOAD_VISUALS
@@ -17256,6 +18803,8 @@ components:
- CAN_ACCESS_ANALYST_STUDIO
- CAN_MANAGE_ANALYST_STUDIO
- PREVIEW_DOCUMENT_SEARCH
+ - CAN_MODIFY_FOLDERS
+ - CAN_VIEW_FOLDERS
- CAN_SETUP_VERSION_CONTROL
- CAN_MANAGE_WEBHOOKS
- CAN_DOWNLOAD_VISUALS
@@ -17374,6 +18923,8 @@ components:
- ALLOW_NON_EMBED_FULL_APP_ACCESS
- CAN_ACCESS_ANALYST_STUDIO
- CAN_MANAGE_ANALYST_STUDIO
+ - CAN_MODIFY_FOLDERS
+ - CAN_VIEW_FOLDERS
- PREVIEW_DOCUMENT_SEARCH
- CAN_SETUP_VERSION_CONTROL
- CAN_DOWNLOAD_VISUALS
@@ -18264,6 +19815,8 @@ components:
- CAN_ACCESS_ANALYST_STUDIO
- CAN_MANAGE_ANALYST_STUDIO
- PREVIEW_DOCUMENT_SEARCH
+ - CAN_MODIFY_FOLDERS
+ - CAN_VIEW_FOLDERS
- CAN_SETUP_VERSION_CONTROL
- PREVIEW_THOUGHTSPOT_SAGE
- CAN_MANAGE_WEBHOOKS
@@ -18348,6 +19901,8 @@ components:
- ALLOW_NON_EMBED_FULL_APP_ACCESS
- CAN_ACCESS_ANALYST_STUDIO
- CAN_MANAGE_ANALYST_STUDIO
+ - CAN_VIEW_FOLDERS
+ - CAN_MODIDY_FOLDERS
- PREVIEW_DOCUMENT_SEARCH
- CAN_SETUP_VERSION_CONTROL
- CAN_MANAGE_WEBHOOKS
@@ -18423,6 +19978,8 @@ components:
- CAN_CREATE_CATALOG
- CAN_ACCESS_ANALYST_STUDIO
- CAN_MANAGE_ANALYST_STUDIO
+ - CAN_MODIFY_FOLDERS
+ - CAN_VIEW_FOLDERS
- PREVIEW_DOCUMENT_SEARCH
- PREVIEW_THOUGHTSPOT_SAGE
- CAN_MANAGE_WEBHOOKS
@@ -20092,6 +21649,34 @@ components:
required:
- column_security_rules
type: object
+ configureCommunicationChannelPreferences_request:
+ properties:
+ cluster_preferences:
+ description: Cluster-level default configurations.
+ items:
+ $ref: '#/components/schemas/EventChannelConfigInput'
+ type: array
+ org_preferences:
+ description: Org-specific configurations.
+ items:
+ $ref: '#/components/schemas/OrgChannelConfigInput'
+ type: array
+ type: object
+ searchCommunicationChannelPreferences_request:
+ properties:
+ cluster_preferences:
+ description: Event types to search for in cluster-level preferences.
+ items:
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ type: array
+ org_preferences:
+ description: Org-specific search criteria.
+ items:
+ $ref: '#/components/schemas/OrgPreferenceSearchCriteriaInput'
+ type: array
+ type: object
updateSystemConfig_request:
properties:
configuration:
@@ -20445,6 +22030,8 @@ components:
- CAN_ACCESS_ANALYST_STUDIO
- CAN_MANAGE_ANALYST_STUDIO
- PREVIEW_DOCUMENT_SEARCH
+ - CAN_MODIFY_FOLDERS
+ - CAN_VIEW_FOLDERS
- CAN_SETUP_VERSION_CONTROL
- CAN_MANAGE_WEBHOOKS
- CAN_DOWNLOAD_VISUALS
@@ -20655,16 +22242,21 @@ components:
name:
description: Name of the variable. This is unique across the cluster.
type: string
- sensitive:
+ is_sensitive:
default: false
description: If the variable contains sensitive values like passwords
nullable: true
type: boolean
- values:
- description: Values of variable
- items:
- $ref: '#/components/schemas/InputVariableValue'
- type: array
+ data_type:
+ description: Variable Data Type
+ enum:
+ - VARCHAR
+ - INT32
+ - INT64
+ - DOUBLE
+ - DATE
+ - DATE_TIME
+ type: string
required:
- name
- type
@@ -20676,6 +22268,11 @@ components:
items:
$ref: '#/components/schemas/VariableDetailInput'
type: array
+ value_scope:
+ description: Array of scope filters
+ items:
+ $ref: '#/components/schemas/ValueScopeInput'
+ type: array
record_offset:
default: 0
description: The starting record number from where the records should be
@@ -20693,45 +22290,31 @@ components:
enum:
- METADATA_ONLY
- METADATA_AND_VALUES
- - EDITABLE_METADATA_AND_VALUES
type: string
type: object
updateVariable_request:
properties:
name:
- description: New name of the variable if we want to rename.
- type: string
- operation:
- default: REPLACE
- description: Operation to perform on the values.
- enum:
- - ADD
- - REMOVE
- - REPLACE
+ description: New name of the variable.
type: string
- values:
- description: Values of variable to be updated.
- items:
- $ref: '#/components/schemas/InputVariableValue'
- type: array
+ required:
+ - name
type: object
updateVariableValues_request:
properties:
- variable_updates:
- description: Variables and values
+ variable_assignment:
+ description: Variables and values to update
items:
- $ref: '#/components/schemas/VariableValueInput'
+ $ref: '#/components/schemas/VariableUpdateAssignmentInput'
+ type: array
+ variable_value_scope:
+ description: Variables and values to update
+ items:
+ $ref: '#/components/schemas/VariableUpdateScopeInput'
type: array
- operation:
- description: Type of update operation
- enum:
- - ADD
- - REMOVE
- - REPLACE
- type: string
required:
- - operation
- - variable_updates
+ - variable_assignment
+ - variable_value_scope
type: object
commitBranch_request:
properties:
@@ -20965,6 +22548,110 @@ components:
- source_branch_name
- target_branch_name
type: object
+ createWebhookConfiguration_request:
+ properties:
+ name:
+ description: Name of the webhook configuration.
+ type: string
+ description:
+ description: Description of the webhook configuration.
+ type: string
+ url:
+ description: The webhook endpoint URL.
+ type: string
+ url_params:
+ description: Additional URL parameters as key-value pairs.
+ type: object
+ events:
+ description: List of events to subscribe to.
+ items:
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ type: array
+ authentication:
+ allOf:
+ - $ref: '#/components/schemas/WebhookAuthenticationInput'
+ description: Authorization configuration for the webhook.
+ signature_verification:
+ allOf:
+ - $ref: '#/components/schemas/WebhookSignatureVerificationInput'
+ description: Configuration for webhook signature verification.
+ required:
+ - events
+ - name
+ - url
+ type: object
+ deleteWebhookConfigurations_request:
+ properties:
+ webhook_identifiers:
+ description: List of webhook identifiers to delete.
+ items:
+ type: string
+ type: array
+ required:
+ - webhook_identifiers
+ type: object
+ searchWebhookConfigurations_request:
+ properties:
+ org_identifier:
+ description: Unique ID or name of the org.
+ type: string
+ webhook_identifier:
+ description: Unique ID or name of the webhook.
+ type: string
+ event_type:
+ description: Type of webhook event to filter by.
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ record_offset:
+ default: 0
+ description: "The offset point, starting from where the webhooks should\
+ \ be included in the response."
+ format: int32
+ type: integer
+ record_size:
+ default: 50
+ description: The number of webhooks that should be included in the response
+ starting from offset position.
+ format: int32
+ type: integer
+ sort_options:
+ allOf:
+ - $ref: '#/components/schemas/WebhookSortOptionsInput'
+ description: Sort option includes sort field and sort order.
+ type: object
+ updateWebhookConfiguration_request:
+ properties:
+ name:
+ description: Name of the webhook configuration.
+ type: string
+ description:
+ description: Description of the webhook configuration.
+ type: string
+ url:
+ description: The webhook endpoint URL.
+ type: string
+ url_params:
+ description: Additional URL parameters as key-value pairs.
+ type: object
+ events:
+ description: List of events to subscribe to.
+ items:
+ enum:
+ - LIVEBOARD_SCHEDULE
+ type: string
+ type: array
+ authentication:
+ allOf:
+ - $ref: '#/components/schemas/WebhookAuthenticationInput'
+ description: Authorization configuration for the webhook.
+ signature_verification:
+ allOf:
+ - $ref: '#/components/schemas/WebhookSignatureVerificationInput'
+ description: Configuration for webhook signature verification.
+ type: object
securitySchemes:
bearerAuth:
scheme: bearer
@@ -21055,6 +22742,11 @@ x-roles:
tags:
- 9.5.0.cl
description: Roles for version 9.5.0.cl
+- name: 10.14.0.cl
+ id: 10.14.0.cl
+ tags:
+ - 10.14.0.cl
+ description: Roles for version 10.14.0.cl
- name: 9.7.0.cl
id: 9.7.0.cl
tags:
diff --git a/sdks/java/build.gradle b/sdks/java/build.gradle
index 271c93c0a..c560e39c8 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.18.0'
+version = '2.19.0'
buildscript {
repositories {
diff --git a/sdks/java/build.sbt b/sdks/java/build.sbt
index 045af7603..76f597434 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.18.0",
+ version := "2.19.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 8378d2b11..4318afae1 100644
--- a/sdks/java/docs/AiApi.md
+++ b/sdks/java/docs/AiApi.md
@@ -9,6 +9,7 @@ All URIs are relative to *CLUSTER_URL*
| [**getDataSourceSuggestions**](AiApi.md#getDataSourceSuggestions) | **POST** /api/rest/2.0/ai/data-source-suggestions |
| [**getRelevantQuestions**](AiApi.md#getRelevantQuestions) | **POST** /api/rest/2.0/ai/relevant-questions/ |
| [**queryGetDecomposedQuery**](AiApi.md#queryGetDecomposedQuery) | **POST** /api/rest/2.0/ai/analytical-questions |
+| [**sendAgentMessage**](AiApi.md#sendAgentMessage) | **POST** /api/rest/2.0/ai/agent/{conversation_identifier}/converse |
| [**sendAgentMessageStreaming**](AiApi.md#sendAgentMessageStreaming) | **POST** /api/rest/2.0/ai/agent/converse/sse |
| [**sendMessage**](AiApi.md#sendMessage) | **POST** /api/rest/2.0/ai/conversation/{conversation_identifier}/converse |
| [**singleAnswer**](AiApi.md#singleAnswer) | **POST** /api/rest/2.0/ai/answer/create |
@@ -189,6 +190,42 @@ Version: 10.7.0.cl or later
| **400** | Operation failed | - |
| **500** | Operation failed | - |
+
+# **sendAgentMessage**
+> Object sendAgentMessage(conversationIdentifier, sendAgentMessageRequest)
+
+
+
+ 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 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.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **conversationIdentifier** | **String**
+| **sendAgentMessageRequest** | [**SendAgentMessageRequest**](SendAgentMessageRequest.md)
+
+### Return type
+
+**Object**
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Common successful response | - |
+| **201** | Common error response | - |
+| **400** | Operation failed | - |
+| **500** | Operation failed | - |
+
# **sendAgentMessageStreaming**
> SendAgentMessageResponse sendAgentMessageStreaming(sendAgentMessageStreamingRequest)
diff --git a/sdks/java/docs/AuthenticationApi.md b/sdks/java/docs/AuthenticationApi.md
index fa8917558..55f4e0efa 100644
--- a/sdks/java/docs/AuthenticationApi.md
+++ b/sdks/java/docs/AuthenticationApi.md
@@ -87,7 +87,7 @@ This endpoint does not need any parameter.
- Version: 10.4.0.cl or later Gets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. To add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. 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 and edit access to the data source is required. To assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). 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 and edit access to the data source is required. #### Usage guidelines You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`. To generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page. **Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence. If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance. ##### Attribute-Based Access Control (ABAC) with tokens To implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values. Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported. For more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions). ##### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `groups` Set `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` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). ##### Important point to note All options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.
+ Version: 10.4.0.cl or later Gets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. To add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. 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 and edit access to the data source is required. To assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). 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 and edit access to the data source is required. #### Usage guidelines You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`. To generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page. **Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence. If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance. ##### Attribute-Based Access Control (ABAC) with tokens To implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values. Specify the object type as `LOGICAL_TABLE`. For more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions). ##### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `groups` Set `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` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values. If `auto_create` is set to `true`, it won't create formula variables and hence won't be applicable for `variable_values`. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). ##### Important point to note All options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session. ##### Formula Variables Before using variables_values, variables must be created using Create Variable API with type as Formula_Variable (/api/rest/2.0/template/variables/create) The persist_option RESET and NONE cannot be used when variable_values are provided in the request. If you are working with variable_values, you must use other (APPEND, REPLACE) supported modes. If you want to use RESET or NONE, do not pass any variable_values. In such cases, variable_values will remain unaffected. When using object_id with variable_values, models are supported.
### Parameters
diff --git a/sdks/java/docs/ColumnSecurityRuleResponse.md b/sdks/java/docs/ColumnSecurityRuleResponse.md
index 952026c17..6e79864f0 100644
--- a/sdks/java/docs/ColumnSecurityRuleResponse.md
+++ b/sdks/java/docs/ColumnSecurityRuleResponse.md
@@ -7,7 +7,7 @@
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**guid** | **String** | GUID of the table for which the column security rules are fetched | [optional] |
+|**tableGuid** | **String** | GUID of the table for which the column security rules are fetched | [optional] |
|**objId** | **String** | Object ID of the table for which the column security rules are fetched | [optional] |
|**columnSecurityRules** | [**List<ColumnSecurityRule>**](ColumnSecurityRule.md) | Array containing column security rule objects | [optional] |
diff --git a/sdks/java/docs/CommunicationChannelPreferencesResponse.md b/sdks/java/docs/CommunicationChannelPreferencesResponse.md
new file mode 100644
index 000000000..1760d0312
--- /dev/null
+++ b/sdks/java/docs/CommunicationChannelPreferencesResponse.md
@@ -0,0 +1,18 @@
+
+
+# CommunicationChannelPreferencesResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**clusterPreferences** | [**List<EventChannelConfig>**](EventChannelConfig.md) | Cluster-level default configurations. | [optional] |
+|**orgPreferences** | [**List<OrgChannelConfigResponse>**](OrgChannelConfigResponse.md) | Org-specific configurations. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/ConfigureCommunicationChannelPreferencesRequest.md b/sdks/java/docs/ConfigureCommunicationChannelPreferencesRequest.md
new file mode 100644
index 000000000..e98175e00
--- /dev/null
+++ b/sdks/java/docs/ConfigureCommunicationChannelPreferencesRequest.md
@@ -0,0 +1,18 @@
+
+
+# ConfigureCommunicationChannelPreferencesRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**clusterPreferences** | [**List<EventChannelConfigInput>**](EventChannelConfigInput.md) | Cluster-level default configurations. | [optional] |
+|**orgPreferences** | [**List<OrgChannelConfigInput>**](OrgChannelConfigInput.md) | Org-specific configurations. | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/ConnectionsApi.md b/sdks/java/docs/ConnectionsApi.md
index e99d0ba17..b3c8073cd 100644
--- a/sdks/java/docs/ConnectionsApi.md
+++ b/sdks/java/docs/ConnectionsApi.md
@@ -272,7 +272,7 @@ null (empty response body)
- Version: 10.4.0.cl or later Updates a connection object. 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. To update a connection object, pass these parameters in your API request: 1. GUID of the connection object. 2. If you are updating tables or database schema of a connection object: a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`. b. 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. * 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\" } ] } ] } ] } ] } ``` 3. If you are updating a configuration attribute, connection name, or description, you can 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. * 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\":[ ] } ```
+ Version: 10.4.0.cl or later Updates a connection object. 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. To update a connection object, pass these parameters in your API request: 1. GUID of the connection object. 2. If you are updating tables or database schema of a connection object: a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`. b. 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. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: * This is an example of updating a single table in a empty connection: ``` { \"authenticationType\": \"SERVICE_ACCOUNT\", \"externalDatabases\": [ { \"name\": \"DEVELOPMENT\", \"isAutoCreated\": false, \"schemas\": [ { \"name\": \"TS_dataset\", \"tables\": [ { \"name\": \"DEMORENAME\", \"type\": \"TABLE\", \"description\": \"\", \"selected\": true, \"linked\": true, \"gid\": 0, \"datasetId\": \"-1\", \"subType\": \"\", \"reportId\": \"\", \"viewId\": \"\", \"columns\": [ { \"name\": \"Col1\", \"type\": \"VARCHAR\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"Col2\", \"type\": \"VARCHAR\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"Col3\", \"type\": \"VARCHAR\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"Col312\", \"type\": \"VARCHAR\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"Col4\", \"type\": \"VARCHAR\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false } ], \"relationships\": [] } ] } ] } ], \"configuration\": { \"password\": \"\", \"database\": \"DEVELOPMENT\", \"role\": \"DEV\", \"accountName\": \"thoughtspot_partner\", \"warehouse\": \"DEMO_WH\", \"user\": \"DEV_USER\" } } ``` * This is an example of updating a single table in an existing connection with tables: ``` { \"authenticationType\": \"SERVICE_ACCOUNT\", \"externalDatabases\": [ { \"name\": \"DEVELOPMENT\", \"isAutoCreated\": false, \"schemas\": [ { \"name\": \"TS_dataset\", \"tables\": [ { \"name\": \"CUSTOMER\", \"type\": \"TABLE\", \"description\": \"\", \"selected\": true, \"linked\": true, \"gid\": 0, \"datasetId\": \"-1\", \"subType\": \"\", \"reportId\": \"\", \"viewId\": \"\", \"columns\": [], \"relationships\": [] }, { \"name\": \"tpch5k_falcon_default_schema_users\", \"type\": \"TABLE\", \"description\": \"\", \"selected\": true, \"linked\": true, \"gid\": 0, \"datasetId\": \"-1\", \"subType\": \"\", \"reportId\": \"\", \"viewId\": \"\", \"columns\": [ { \"name\": \"user_id\", \"type\": \"INT64\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"product_id\", \"type\": \"INT64\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"user_cost\", \"type\": \"INT64\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false } ], \"relationships\": [] } ] } ] } ], \"configuration\": { \"password\": \"\", \"database\": \"DEVELOPMENT\", \"role\": \"DEV\", \"accountName\": \"thoughtspot_partner\", \"warehouse\": \"DEMO_WH\", \"user\": \"DEV_USER\" } } ``` 3. If you are updating a configuration attribute, connection name, or description, you can 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. * 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\":[ ] } ```
### Parameters
diff --git a/sdks/java/docs/CreateRoleRequest.md b/sdks/java/docs/CreateRoleRequest.md
index 838ea5003..4ba139579 100644
--- a/sdks/java/docs/CreateRoleRequest.md
+++ b/sdks/java/docs/CreateRoleRequest.md
@@ -49,6 +49,8 @@
| CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" |
| CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" |
| PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" |
+| CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" |
+| CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" |
| CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" |
| PREVIEW_THOUGHTSPOT_SAGE | "PREVIEW_THOUGHTSPOT_SAGE" |
| CAN_MANAGE_WEBHOOKS | "CAN_MANAGE_WEBHOOKS" |
diff --git a/sdks/java/docs/CreateUserGroupRequest.md b/sdks/java/docs/CreateUserGroupRequest.md
index 1387ebb05..a5713bcdd 100644
--- a/sdks/java/docs/CreateUserGroupRequest.md
+++ b/sdks/java/docs/CreateUserGroupRequest.md
@@ -49,6 +49,8 @@
| ALLOW_NON_EMBED_FULL_APP_ACCESS | "ALLOW_NON_EMBED_FULL_APP_ACCESS" |
| CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" |
| CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" |
+| CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" |
+| CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" |
| PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" |
| CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" |
| CAN_DOWNLOAD_VISUALS | "CAN_DOWNLOAD_VISUALS" |
diff --git a/sdks/java/docs/CreateVariableRequest.md b/sdks/java/docs/CreateVariableRequest.md
index 16eea25f2..603d6221c 100644
--- a/sdks/java/docs/CreateVariableRequest.md
+++ b/sdks/java/docs/CreateVariableRequest.md
@@ -9,8 +9,8 @@
|------------ | ------------- | ------------- | -------------|
|**type** | [**TypeEnum**](#TypeEnum) | Type of variable | |
|**name** | **String** | Name of the variable. This is unique across the cluster. | |
-|**sensitive** | **Boolean** | If the variable contains sensitive values like passwords | [optional] |
-|**values** | [**List<InputVariableValue>**](InputVariableValue.md) | Values of variable | [optional] |
+|**isSensitive** | **Boolean** | If the variable contains sensitive values like passwords | [optional] |
+|**dataType** | [**DataTypeEnum**](#DataTypeEnum) | Variable Data Type | [optional] |
@@ -23,6 +23,19 @@
| CONNECTION_PROPERTY_PER_PRINCIPAL | "CONNECTION_PROPERTY_PER_PRINCIPAL" |
+
+## Enum: DataTypeEnum
+
+| Name | Value |
+|---- | -----|
+| VARCHAR | "VARCHAR" |
+| INT32 | "INT32" |
+| INT64 | "INT64" |
+| DOUBLE | "DOUBLE" |
+| DATE | "DATE" |
+| DATE_TIME | "DATE_TIME" |
+
+
## Implemented Interfaces
* Serializable
diff --git a/sdks/java/docs/CreateWebhookConfigurationRequest.md b/sdks/java/docs/CreateWebhookConfigurationRequest.md
new file mode 100644
index 000000000..e93af0d6b
--- /dev/null
+++ b/sdks/java/docs/CreateWebhookConfigurationRequest.md
@@ -0,0 +1,31 @@
+
+
+# CreateWebhookConfigurationRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | Name of the webhook configuration. | |
+|**description** | **String** | Description of the webhook configuration. | [optional] |
+|**url** | **String** | The webhook endpoint URL. | |
+|**urlParams** | **Object** | Additional URL parameters as key-value pairs. | [optional] |
+|**events** | [**List<EventsEnum>**](#List<EventsEnum>) | List of events to subscribe to. | |
+|**authentication** | [**WebhookAuthenticationInput**](WebhookAuthenticationInput.md) | Authorization configuration for the webhook. | [optional] |
+|**signatureVerification** | [**WebhookSignatureVerificationInput**](WebhookSignatureVerificationInput.md) | Configuration for webhook signature verification. | [optional] |
+
+
+
+## Enum: List<EventsEnum>
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/DbtApi.md b/sdks/java/docs/DbtApi.md
index 8fb65d640..56aca016e 100644
--- a/sdks/java/docs/DbtApi.md
+++ b/sdks/java/docs/DbtApi.md
@@ -96,7 +96,7 @@ All URIs are relative to *CLUSTER_URL*
# **dbtGenerateTml**
-> Object dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent)
+> Object dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent)
@@ -107,8 +107,8 @@ All URIs are relative to *CLUSTER_URL*
| Name | Type |
|------------- | ------------- |
| **dbtConnectionIdentifier** | **String**
-| **importWorksheets** | **String**
| **modelTables** | **String**
+| **importWorksheets** | **String**
| **worksheets** | **String**
| **fileContent** | **File**
diff --git a/sdks/java/docs/DeleteWebhookConfigurationsRequest.md b/sdks/java/docs/DeleteWebhookConfigurationsRequest.md
new file mode 100644
index 000000000..bf03ae0d3
--- /dev/null
+++ b/sdks/java/docs/DeleteWebhookConfigurationsRequest.md
@@ -0,0 +1,17 @@
+
+
+# DeleteWebhookConfigurationsRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**webhookIdentifiers** | **List<String>** | List of webhook identifiers to delete. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/EventChannelConfig.md b/sdks/java/docs/EventChannelConfig.md
new file mode 100644
index 000000000..d98d2689e
--- /dev/null
+++ b/sdks/java/docs/EventChannelConfig.md
@@ -0,0 +1,35 @@
+
+
+# EventChannelConfig
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**eventType** | [**EventTypeEnum**](#EventTypeEnum) | Type of event for which communication channels are configured | |
+|**channels** | [**List<ChannelsEnum>**](#List<ChannelsEnum>) | Communication channels enabled for this event type. Empty array indicates no channels are enabled. | |
+
+
+
+## Enum: EventTypeEnum
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+
+## Enum: List<ChannelsEnum>
+
+| Name | Value |
+|---- | -----|
+| EMAIL | "EMAIL" |
+| WEBHOOK | "WEBHOOK" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/EventChannelConfigInput.md b/sdks/java/docs/EventChannelConfigInput.md
new file mode 100644
index 000000000..3b66c6518
--- /dev/null
+++ b/sdks/java/docs/EventChannelConfigInput.md
@@ -0,0 +1,35 @@
+
+
+# EventChannelConfigInput
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**eventType** | [**EventTypeEnum**](#EventTypeEnum) | Type of event for which communication channels are configured | |
+|**channels** | [**List<ChannelsEnum>**](#List<ChannelsEnum>) | Communication channels enabled for this event type. Empty array disables all channels for this event. | |
+
+
+
+## Enum: EventTypeEnum
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+
+## Enum: List<ChannelsEnum>
+
+| Name | Value |
+|---- | -----|
+| EMAIL | "EMAIL" |
+| WEBHOOK | "WEBHOOK" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/ExportOptions.md b/sdks/java/docs/ExportOptions.md
index 7d1f8c758..c961d8bb1 100644
--- a/sdks/java/docs/ExportOptions.md
+++ b/sdks/java/docs/ExportOptions.md
@@ -13,6 +13,7 @@ Flags to specify additional options for export. This will only be active when Us
|**includeObjId** | **Boolean** | 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. | [optional] |
|**exportWithAssociatedFeedbacks** | **Boolean** | Boolean flag indicating whether to export associated feedbacks of the object. This will only be respected when the object can have feedbacks. Version: 10.7.0.cl or later | [optional] |
|**exportColumnSecurityRules** | **Boolean** | Boolean flag indicating whether to export column security rules of the object. This will only be respected when the object can have column security rules and export_associated is true. Version: 10.12.0.cl or later | [optional] |
+|**exportWithColumnAliases** | **Boolean** | Boolean flag indicating whether to export column aliases of the model. This will only be respected when the object can have column aliases. Version: 10.13.0.cl or later | [optional] |
## Implemented Interfaces
diff --git a/sdks/java/docs/GetFullAccessTokenRequest.md b/sdks/java/docs/GetFullAccessTokenRequest.md
index 918bdd488..e21d60cdb 100644
--- a/sdks/java/docs/GetFullAccessTokenRequest.md
+++ b/sdks/java/docs/GetFullAccessTokenRequest.md
@@ -16,6 +16,7 @@
|**displayName** | **String** | Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT). | [optional] |
|**autoCreate** | **Boolean** | Creates a new user if the specified username does not already exist in ThoughtSpot. To provision a user just-in-time (JIT), set this attribute to true. Note: For JIT provisioning of a user, the secret_key is required. | [optional] |
|**groupIdentifiers** | **List<String>** | ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT). | [optional] |
+|**userParameters** | [**UserParameterOptions**](UserParameterOptions.md) | <div>Deprecated: 10.4.0.cl and later </div> Define attributes such as Runtime filters and Runtime parameters to send security entitlements to a user session. For more information, see [Documentation](https://developers.thoughtspot.com/docs/abac-user-parameters). | [optional] |
## Implemented Interfaces
diff --git a/sdks/java/docs/GetObjectAccessTokenRequest.md b/sdks/java/docs/GetObjectAccessTokenRequest.md
index c508a909a..1ad301910 100644
--- a/sdks/java/docs/GetObjectAccessTokenRequest.md
+++ b/sdks/java/docs/GetObjectAccessTokenRequest.md
@@ -17,6 +17,7 @@
|**displayName** | **String** | Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). | [optional] |
|**autoCreate** | **Boolean** | Creates a new user if the specified username does not exist in ThoughtSpot. To provision a user just-in-time (JIT), set this attribute to true. Note: For JIT provisioning of a user, the secret_key is required. | [optional] |
|**groupIdentifiers** | **List<String>** | Unique ID or name of the groups to which you want to assign the new user. You can specify this attribute to dynamically assign privileges during just-in-time (JIT) provisioning. | [optional] |
+|**userParameters** | [**UserParameterOptions**](UserParameterOptions.md) | <div>Deprecated: 10.4.0.cl and later </div> Define attributes such as Runtime filters and Runtime parameters to send security entitlements to a user session. For more information, see [Documentation](https://developers.thoughtspot.com/docs/abac-user-parameters). | [optional] |
## Implemented Interfaces
diff --git a/sdks/java/docs/GroupsImportListInput.md b/sdks/java/docs/GroupsImportListInput.md
index 89099f416..45de8ff7f 100644
--- a/sdks/java/docs/GroupsImportListInput.md
+++ b/sdks/java/docs/GroupsImportListInput.md
@@ -48,6 +48,8 @@
| ALLOW_NON_EMBED_FULL_APP_ACCESS | "ALLOW_NON_EMBED_FULL_APP_ACCESS" |
| CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" |
| CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" |
+| CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" |
+| CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" |
| PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" |
| CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" |
| CAN_DOWNLOAD_VISUALS | "CAN_DOWNLOAD_VISUALS" |
diff --git a/sdks/java/docs/MetadataApi.md b/sdks/java/docs/MetadataApi.md
index 0e5fa5dc4..5fc30396c 100644
--- a/sdks/java/docs/MetadataApi.md
+++ b/sdks/java/docs/MetadataApi.md
@@ -63,7 +63,7 @@ All URIs are relative to *CLUSTER_URL*
- Makes a copy of an Answer or Liveboard saved in Atlas Version: 10.3.0.cl or later Creates a copy of a metadata object. Requires at least view access to the metadata object being copied. Upon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.
+ Makes a copy of an Answer or Liveboard Version: 10.3.0.cl or later Creates a copy of a metadata object. Requires at least view access to the metadata object being copied. Upon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.
### Parameters
diff --git a/sdks/java/docs/OrgChannelConfigInput.md b/sdks/java/docs/OrgChannelConfigInput.md
new file mode 100644
index 000000000..5be89c869
--- /dev/null
+++ b/sdks/java/docs/OrgChannelConfigInput.md
@@ -0,0 +1,37 @@
+
+
+# OrgChannelConfigInput
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**orgIdentifier** | **String** | Unique identifier or name of the org | |
+|**operation** | [**OperationEnum**](#OperationEnum) | Operation to perform. REPLACE: Update preferences (default). RESET: Remove org-specific configurations, causing fallback to cluster-level preferences. | [optional] |
+|**preferences** | [**List<EventChannelConfigInput>**](EventChannelConfigInput.md) | Event-specific configurations. Required for REPLACE operation. | [optional] |
+|**resetEvents** | [**List<ResetEventsEnum>**](#List<ResetEventsEnum>) | Event types to reset. Required for RESET operation. Org-specific configurations for these events will be removed, causing fallback to cluster-level preferences. | [optional] |
+
+
+
+## Enum: OperationEnum
+
+| Name | Value |
+|---- | -----|
+| REPLACE | "REPLACE" |
+| RESET | "RESET" |
+
+
+
+## Enum: List<ResetEventsEnum>
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/OrgChannelConfigResponse.md b/sdks/java/docs/OrgChannelConfigResponse.md
new file mode 100644
index 000000000..77dbbb45b
--- /dev/null
+++ b/sdks/java/docs/OrgChannelConfigResponse.md
@@ -0,0 +1,18 @@
+
+
+# OrgChannelConfigResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**org** | [**OrgDetails**](OrgDetails.md) | | |
+|**preferences** | [**List<EventChannelConfig>**](EventChannelConfig.md) | Event-specific communication channel configurations for this org | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/OrgDetails.md b/sdks/java/docs/OrgDetails.md
new file mode 100644
index 000000000..0e22f8f2f
--- /dev/null
+++ b/sdks/java/docs/OrgDetails.md
@@ -0,0 +1,18 @@
+
+
+# OrgDetails
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique id of the org | |
+|**name** | **String** | Name of the org | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/OrgPreferenceSearchCriteriaInput.md b/sdks/java/docs/OrgPreferenceSearchCriteriaInput.md
new file mode 100644
index 000000000..8c842c00f
--- /dev/null
+++ b/sdks/java/docs/OrgPreferenceSearchCriteriaInput.md
@@ -0,0 +1,26 @@
+
+
+# OrgPreferenceSearchCriteriaInput
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**orgIdentifier** | **String** | Unique identifier or name of the org | |
+|**eventTypes** | [**List<EventTypesEnum>**](#List<EventTypesEnum>) | Event types to search for. If not provided, all event types for this org are returned. | [optional] |
+
+
+
+## Enum: List<EventTypesEnum>
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/RoleResponse.md b/sdks/java/docs/RoleResponse.md
index 58859a346..ceb2383df 100644
--- a/sdks/java/docs/RoleResponse.md
+++ b/sdks/java/docs/RoleResponse.md
@@ -62,6 +62,8 @@
| CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" |
| CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" |
| PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" |
+| CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" |
+| CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" |
| CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" |
| PREVIEW_THOUGHTSPOT_SAGE | "PREVIEW_THOUGHTSPOT_SAGE" |
| CAN_MANAGE_WEBHOOKS | "CAN_MANAGE_WEBHOOKS" |
diff --git a/sdks/java/docs/SearchCommunicationChannelPreferencesRequest.md b/sdks/java/docs/SearchCommunicationChannelPreferencesRequest.md
new file mode 100644
index 000000000..20dea32ea
--- /dev/null
+++ b/sdks/java/docs/SearchCommunicationChannelPreferencesRequest.md
@@ -0,0 +1,26 @@
+
+
+# SearchCommunicationChannelPreferencesRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**clusterPreferences** | [**List<ClusterPreferencesEnum>**](#List<ClusterPreferencesEnum>) | Event types to search for in cluster-level preferences. | [optional] |
+|**orgPreferences** | [**List<OrgPreferenceSearchCriteriaInput>**](OrgPreferenceSearchCriteriaInput.md) | Org-specific search criteria. | [optional] |
+
+
+
+## Enum: List<ClusterPreferencesEnum>
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/SearchRoleResponse.md b/sdks/java/docs/SearchRoleResponse.md
index a5bcdd1a0..822764d6d 100644
--- a/sdks/java/docs/SearchRoleResponse.md
+++ b/sdks/java/docs/SearchRoleResponse.md
@@ -75,6 +75,8 @@ Response for search role api should handle hidden privileges as well.
| ALLOW_NON_EMBED_FULL_APP_ACCESS | "ALLOW_NON_EMBED_FULL_APP_ACCESS" |
| CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" |
| CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" |
+| CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" |
+| CAN_MODIDY_FOLDERS | "CAN_MODIDY_FOLDERS" |
| PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" |
| CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" |
| CAN_MANAGE_WEBHOOKS | "CAN_MANAGE_WEBHOOKS" |
diff --git a/sdks/java/docs/SearchRolesRequest.md b/sdks/java/docs/SearchRolesRequest.md
index 0d14ce452..59ba8914a 100644
--- a/sdks/java/docs/SearchRolesRequest.md
+++ b/sdks/java/docs/SearchRolesRequest.md
@@ -65,6 +65,8 @@
| ALLOW_NON_EMBED_FULL_APP_ACCESS | "ALLOW_NON_EMBED_FULL_APP_ACCESS" |
| CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" |
| CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" |
+| CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" |
+| CAN_MODIDY_FOLDERS | "CAN_MODIDY_FOLDERS" |
| PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" |
| CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" |
| CAN_MANAGE_WEBHOOKS | "CAN_MANAGE_WEBHOOKS" |
diff --git a/sdks/java/docs/SearchUserGroupsRequest.md b/sdks/java/docs/SearchUserGroupsRequest.md
index 2c8c597f5..cb358b2eb 100644
--- a/sdks/java/docs/SearchUserGroupsRequest.md
+++ b/sdks/java/docs/SearchUserGroupsRequest.md
@@ -66,6 +66,8 @@
| CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" |
| CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" |
| PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" |
+| CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" |
+| CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" |
| CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" |
| CAN_MANAGE_WEBHOOKS | "CAN_MANAGE_WEBHOOKS" |
| CAN_DOWNLOAD_VISUALS | "CAN_DOWNLOAD_VISUALS" |
diff --git a/sdks/java/docs/SearchUsersRequest.md b/sdks/java/docs/SearchUsersRequest.md
index 0951d165f..9be79d6ca 100644
--- a/sdks/java/docs/SearchUsersRequest.md
+++ b/sdks/java/docs/SearchUsersRequest.md
@@ -78,6 +78,8 @@
| CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" |
| CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" |
| PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" |
+| CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" |
+| CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" |
| CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" |
| CAN_MANAGE_WEBHOOKS | "CAN_MANAGE_WEBHOOKS" |
| CAN_DOWNLOAD_VISUALS | "CAN_DOWNLOAD_VISUALS" |
diff --git a/sdks/java/docs/SearchVariablesRequest.md b/sdks/java/docs/SearchVariablesRequest.md
index a94dc973b..f5cf7a9fe 100644
--- a/sdks/java/docs/SearchVariablesRequest.md
+++ b/sdks/java/docs/SearchVariablesRequest.md
@@ -8,6 +8,7 @@
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**variableDetails** | [**List<VariableDetailInput>**](VariableDetailInput.md) | Variable details | [optional] |
+|**valueScope** | [**List<ValueScopeInput>**](ValueScopeInput.md) | Array of scope filters | [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 | [optional] |
|**outputFormat** | [**OutputFormatEnum**](#OutputFormatEnum) | Format in which we want the output | [optional] |
@@ -20,7 +21,6 @@
|---- | -----|
| METADATA_ONLY | "METADATA_ONLY" |
| METADATA_AND_VALUES | "METADATA_AND_VALUES" |
-| EDITABLE_METADATA_AND_VALUES | "EDITABLE_METADATA_AND_VALUES" |
## Implemented Interfaces
diff --git a/sdks/java/docs/SearchWebhookConfigurationsRequest.md b/sdks/java/docs/SearchWebhookConfigurationsRequest.md
new file mode 100644
index 000000000..a81f9afd7
--- /dev/null
+++ b/sdks/java/docs/SearchWebhookConfigurationsRequest.md
@@ -0,0 +1,30 @@
+
+
+# SearchWebhookConfigurationsRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**orgIdentifier** | **String** | Unique ID or name of the org. | [optional] |
+|**webhookIdentifier** | **String** | Unique ID or name of the webhook. | [optional] |
+|**eventType** | [**EventTypeEnum**](#EventTypeEnum) | Type of webhook event to filter by. | [optional] |
+|**recordOffset** | **Integer** | The offset point, starting from where the webhooks should be included in the response. | [optional] |
+|**recordSize** | **Integer** | The number of webhooks that should be included in the response starting from offset position. | [optional] |
+|**sortOptions** | [**WebhookSortOptionsInput**](WebhookSortOptionsInput.md) | Sort option includes sort field and sort order. | [optional] |
+
+
+
+## Enum: EventTypeEnum
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/SendAgentMessageRequest.md b/sdks/java/docs/SendAgentMessageRequest.md
new file mode 100644
index 000000000..64766553c
--- /dev/null
+++ b/sdks/java/docs/SendAgentMessageRequest.md
@@ -0,0 +1,17 @@
+
+
+# SendAgentMessageRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**messages** | **List<String>** | messages to be sent to the agent | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/SystemApi.md b/sdks/java/docs/SystemApi.md
index 8fa061067..1d9ba0cbe 100644
--- a/sdks/java/docs/SystemApi.md
+++ b/sdks/java/docs/SystemApi.md
@@ -4,12 +4,50 @@ All URIs are relative to *CLUSTER_URL*
| Method | HTTP request |
|------------- | ------------- |
+| [**configureCommunicationChannelPreferences**](SystemApi.md#configureCommunicationChannelPreferences) | **POST** /api/rest/2.0/system/preferences/communication-channels/configure |
| [**getSystemConfig**](SystemApi.md#getSystemConfig) | **GET** /api/rest/2.0/system/config |
| [**getSystemInformation**](SystemApi.md#getSystemInformation) | **GET** /api/rest/2.0/system |
| [**getSystemOverrideInfo**](SystemApi.md#getSystemOverrideInfo) | **GET** /api/rest/2.0/system/config-overrides |
+| [**searchCommunicationChannelPreferences**](SystemApi.md#searchCommunicationChannelPreferences) | **POST** /api/rest/2.0/system/preferences/communication-channels/search |
| [**updateSystemConfig**](SystemApi.md#updateSystemConfig) | **POST** /api/rest/2.0/system/config-update |
+
+# **configureCommunicationChannelPreferences**
+> configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest)
+
+
+
+ Version: 10.14.0.cl or later Configure communication channel preferences. - Use `cluster_preferences` to update the default preferences for your ThoughtSpot application instance. - If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to specify Org-specific preferences that override the defaults. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **configureCommunicationChannelPreferencesRequest** | [**ConfigureCommunicationChannelPreferencesRequest**](ConfigureCommunicationChannelPreferencesRequest.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** | Communication channel preferences successfully updated. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **getSystemConfig**
> SystemConfig getSystemConfig()
@@ -109,6 +147,42 @@ This endpoint does not need any parameter.
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **searchCommunicationChannelPreferences**
+> CommunicationChannelPreferencesResponse searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest)
+
+
+
+ Version: 10.14.0.cl or later Fetch communication channel preferences. - Use `cluster_preferences` to fetch the default preferences for your ThoughtSpot application instance. - If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to fetch any Org-specific preferences that override the defaults. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **searchCommunicationChannelPreferencesRequest** | [**SearchCommunicationChannelPreferencesRequest**](SearchCommunicationChannelPreferencesRequest.md)
+
+### Return type
+
+[**CommunicationChannelPreferencesResponse**](CommunicationChannelPreferencesResponse.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 preferences retrieved successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **updateSystemConfig**
> updateSystemConfig(updateSystemConfigRequest)
diff --git a/sdks/java/docs/ThoughtSpotRestApi.md b/sdks/java/docs/ThoughtSpotRestApi.md
index 44d62a1e6..17b6699af 100644
--- a/sdks/java/docs/ThoughtSpotRestApi.md
+++ b/sdks/java/docs/ThoughtSpotRestApi.md
@@ -9,6 +9,7 @@ All URIs are relative to *CLUSTER_URL*
| [**assignTag**](ThoughtSpotRestApi.md#assignTag) | **POST** /api/rest/2.0/tags/assign |
| [**changeUserPassword**](ThoughtSpotRestApi.md#changeUserPassword) | **POST** /api/rest/2.0/users/change-password |
| [**commitBranch**](ThoughtSpotRestApi.md#commitBranch) | **POST** /api/rest/2.0/vcs/git/branches/commit |
+| [**configureCommunicationChannelPreferences**](ThoughtSpotRestApi.md#configureCommunicationChannelPreferences) | **POST** /api/rest/2.0/system/preferences/communication-channels/configure |
| [**connectionConfigurationSearch**](ThoughtSpotRestApi.md#connectionConfigurationSearch) | **POST** /api/rest/2.0/connection-configurations/search |
| [**convertWorksheetToModel**](ThoughtSpotRestApi.md#convertWorksheetToModel) | **POST** /api/rest/2.0/metadata/worksheets/convert |
| [**copyObject**](ThoughtSpotRestApi.md#copyObject) | **POST** /api/rest/2.0/metadata/copyobject |
@@ -27,6 +28,7 @@ All URIs are relative to *CLUSTER_URL*
| [**createUser**](ThoughtSpotRestApi.md#createUser) | **POST** /api/rest/2.0/users/create |
| [**createUserGroup**](ThoughtSpotRestApi.md#createUserGroup) | **POST** /api/rest/2.0/groups/create |
| [**createVariable**](ThoughtSpotRestApi.md#createVariable) | **POST** /api/rest/2.0/template/variables/create |
+| [**createWebhookConfiguration**](ThoughtSpotRestApi.md#createWebhookConfiguration) | **POST** /api/rest/2.0/webhooks/create |
| [**dbtConnection**](ThoughtSpotRestApi.md#dbtConnection) | **POST** /api/rest/2.0/dbt/dbt-connection |
| [**dbtGenerateSyncTml**](ThoughtSpotRestApi.md#dbtGenerateSyncTml) | **POST** /api/rest/2.0/dbt/generate-sync-tml |
| [**dbtGenerateTml**](ThoughtSpotRestApi.md#dbtGenerateTml) | **POST** /api/rest/2.0/dbt/generate-tml |
@@ -49,6 +51,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 |
+| [**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} |
| [**exportAnswerReport**](ThoughtSpotRestApi.md#exportAnswerReport) | **POST** /api/rest/2.0/report/answer |
@@ -91,6 +94,7 @@ All URIs are relative to *CLUSTER_URL*
| [**revokeToken**](ThoughtSpotRestApi.md#revokeToken) | **POST** /api/rest/2.0/auth/token/revoke |
| [**searchCalendars**](ThoughtSpotRestApi.md#searchCalendars) | **POST** /api/rest/2.0/calendars/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 |
| [**searchConnection**](ThoughtSpotRestApi.md#searchConnection) | **POST** /api/rest/2.0/connection/search |
| [**searchCustomActions**](ThoughtSpotRestApi.md#searchCustomActions) | **POST** /api/rest/2.0/customization/custom-actions/search |
@@ -104,6 +108,8 @@ All URIs are relative to *CLUSTER_URL*
| [**searchUserGroups**](ThoughtSpotRestApi.md#searchUserGroups) | **POST** /api/rest/2.0/groups/search |
| [**searchUsers**](ThoughtSpotRestApi.md#searchUsers) | **POST** /api/rest/2.0/users/search |
| [**searchVariables**](ThoughtSpotRestApi.md#searchVariables) | **POST** /api/rest/2.0/template/variables/search |
+| [**searchWebhookConfigurations**](ThoughtSpotRestApi.md#searchWebhookConfigurations) | **POST** /api/rest/2.0/webhooks/search |
+| [**sendAgentMessage**](ThoughtSpotRestApi.md#sendAgentMessage) | **POST** /api/rest/2.0/ai/agent/{conversation_identifier}/converse |
| [**sendAgentMessageStreaming**](ThoughtSpotRestApi.md#sendAgentMessageStreaming) | **POST** /api/rest/2.0/ai/agent/converse/sse |
| [**sendMessage**](ThoughtSpotRestApi.md#sendMessage) | **POST** /api/rest/2.0/ai/conversation/{conversation_identifier}/converse |
| [**shareMetadata**](ThoughtSpotRestApi.md#shareMetadata) | **POST** /api/rest/2.0/security/metadata/share |
@@ -130,7 +136,8 @@ All URIs are relative to *CLUSTER_URL*
| [**updateUser**](ThoughtSpotRestApi.md#updateUser) | **POST** /api/rest/2.0/users/{user_identifier}/update |
| [**updateUserGroup**](ThoughtSpotRestApi.md#updateUserGroup) | **POST** /api/rest/2.0/groups/{group_identifier}/update |
| [**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 |
+| [**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 |
| [**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 |
@@ -316,6 +323,42 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **configureCommunicationChannelPreferences**
+> configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest)
+
+
+
+ Version: 10.14.0.cl or later Configure communication channel preferences. - Use `cluster_preferences` to update the default preferences for your ThoughtSpot application instance. - If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to specify Org-specific preferences that override the defaults. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **configureCommunicationChannelPreferencesRequest** | [**ConfigureCommunicationChannelPreferencesRequest**](ConfigureCommunicationChannelPreferencesRequest.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** | Communication channel preferences successfully updated. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **connectionConfigurationSearch**
> List<ConnectionConfigurationResponse> connectionConfigurationSearch(connectionConfigurationSearchRequest)
@@ -394,7 +437,7 @@ null (empty response body)
- Makes a copy of an Answer or Liveboard saved in Atlas Version: 10.3.0.cl or later Creates a copy of a metadata object. Requires at least view access to the metadata object being copied. Upon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.
+ Makes a copy of an Answer or Liveboard Version: 10.3.0.cl or later Creates a copy of a metadata object. Requires at least view access to the metadata object being copied. Upon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.
### Parameters
@@ -932,7 +975,7 @@ Version: 10.13.0.cl or later
- Create a variable which can be used for parameterizing metadata objects Version: 10.9.0.cl or later Allows creating a variable which can be used for parameterizing metadata objects in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint supports the following types of variables: * CONNECTION_PROPERTY - For connection properties * TABLE_MAPPING - For table mappings * CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this. * FORMULA_VARIABLE - For Formula variables When creating a variable, you need to specify: * The variable type * A unique name for the variable * Whether the variable contains sensitive values (defaults to false) * The data type of the variable, only specify for fomula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid
+ Create a variable which can be used for parameterizing metadata objects Version: 10.14.0.cl or later Allows creating a variable which can be used for parameterizing metadata objects in 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 supports the following types of variables: * CONNECTION_PROPERTY - For connection properties * TABLE_MAPPING - For table mappings * CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this. * FORMULA_VARIABLE - For Formula variables When creating a variable, you need to specify: * The variable type * A unique name for the variable * Whether the variable contains sensitive values (defaults to false) * The data type of the variable, only specify for fomula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid
### Parameters
@@ -962,6 +1005,42 @@ Version: 10.13.0.cl or later
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **createWebhookConfiguration**
+> WebhookResponse createWebhookConfiguration(createWebhookConfigurationRequest)
+
+
+
+ Version: 10.14.0.cl or later Creates a new webhook configuration to receive notifications for specified events. The webhook will be triggered when the configured events occur in the system. 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.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **createWebhookConfigurationRequest** | [**CreateWebhookConfigurationRequest**](CreateWebhookConfigurationRequest.md)
+
+### Return type
+
+[**WebhookResponse**](WebhookResponse.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** | Webhook configuration created successfully | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **dbtConnection**
> Object dbtConnection(connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent)
@@ -1046,7 +1125,7 @@ Version: 10.13.0.cl or later
# **dbtGenerateTml**
-> Object dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent)
+> Object dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent)
@@ -1057,8 +1136,8 @@ Version: 10.13.0.cl or later
| Name | Type |
|------------- | ------------- |
| **dbtConnectionIdentifier** | **String**
-| **importWorksheets** | **String**
| **modelTables** | **String**
+| **importWorksheets** | **String**
| **worksheets** | **String**
| **fileContent** | **File**
@@ -1734,7 +1813,7 @@ null (empty response body)
- Delete a variable Version: 10.9.0.cl or later Allows deleting a variable from ThoughtSpot. Requires ADMINISTRATION role and TENANT 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 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
@@ -1764,6 +1843,42 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **deleteWebhookConfigurations**
+> WebhookDeleteResponse deleteWebhookConfigurations(deleteWebhookConfigurationsRequest)
+
+
+
+ Version: 10.14.0.cl or later Deletes one or more webhook configurations by their unique id or name. Returns status of each deletion operation, including successfully deleted webhooks and any failures with error details. 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.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **deleteWebhookConfigurationsRequest** | [**DeleteWebhookConfigurationsRequest**](DeleteWebhookConfigurationsRequest.md)
+
+### Return type
+
+[**WebhookDeleteResponse**](WebhookDeleteResponse.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** | Webhook configurations deleted successfully | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **deployCommit**
> List<DeployResponse> deployCommit(deployCommitRequest)
@@ -2484,7 +2599,7 @@ This endpoint does not need any parameter.
- Version: 10.4.0.cl or later Gets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. To add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. 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 and edit access to the data source is required. To assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). 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 and edit access to the data source is required. #### Usage guidelines You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`. To generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page. **Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence. If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance. ##### Attribute-Based Access Control (ABAC) with tokens To implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values. Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported. For more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions). ##### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `groups` Set `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` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). ##### Important point to note All options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.
+ Version: 10.4.0.cl or later Gets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. To add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. 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 and edit access to the data source is required. To assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). 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 and edit access to the data source is required. #### Usage guidelines You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`. To generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page. **Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence. If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance. ##### Attribute-Based Access Control (ABAC) with tokens To implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values. Specify the object type as `LOGICAL_TABLE`. For more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions). ##### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `groups` Set `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` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values. If `auto_create` is set to `true`, it won't create formula variables and hence won't be applicable for `variable_values`. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). ##### Important point to note All options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session. ##### Formula Variables Before using variables_values, variables must be created using Create Variable API with type as Formula_Variable (/api/rest/2.0/template/variables/create) The persist_option RESET and NONE cannot be used when variable_values are provided in the request. If you are working with variable_values, you must use other (APPEND, REPLACE) supported modes. If you want to use RESET or NONE, do not pass any variable_values. In such cases, variable_values will remain unaffected. When using object_id with variable_values, models are supported.
### Parameters
@@ -3256,6 +3371,42 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **searchCommunicationChannelPreferences**
+> CommunicationChannelPreferencesResponse searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest)
+
+
+
+ Version: 10.14.0.cl or later Fetch communication channel preferences. - Use `cluster_preferences` to fetch the default preferences for your ThoughtSpot application instance. - If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to fetch any Org-specific preferences that override the defaults. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **searchCommunicationChannelPreferencesRequest** | [**SearchCommunicationChannelPreferencesRequest**](SearchCommunicationChannelPreferencesRequest.md)
+
+### Return type
+
+[**CommunicationChannelPreferencesResponse**](CommunicationChannelPreferencesResponse.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 preferences retrieved successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
# **searchConfig**
> List<RepoConfigObject> searchConfig(searchConfigRequest)
@@ -3693,7 +3844,7 @@ null (empty response body)
- Search variables Version: 10.9.0.cl or later Allows searching for variables in ThoughtSpot. Requires ADMINISTRATION role. The API endpoint supports searching variables by: * Variable identifier (ID or name) * Variable type * Name pattern (case-insensitive, supports % for wildcard) The search results can be formatted in three ways: * METADATA_ONLY - Returns only variable metadata (default) * METADATA_AND_VALUES - Returns variable metadata and values * EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values The values can be filtered by scope: * org_identifier * principal_identifier * model_identifier
+ Search variables Version: 10.14.0.cl or later Allows searching for 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 supports searching variables by: * Variable identifier (ID or name) * Variable type * Name pattern (case-insensitive, supports % for wildcard) The search results can be formatted in three ways: * METADATA - Returns only variable metadata (default) * METADATA_AND_VALUES - Returns variable metadata and values The values can be filtered by scope: * org_identifier * principal_identifier * model_identifier
### Parameters
@@ -3723,6 +3874,78 @@ null (empty response body)
| **403** | Forbidden access. | - |
| **500** | Unexpected error | - |
+
+# **searchWebhookConfigurations**
+> WebhookSearchResponse searchWebhookConfigurations(searchWebhookConfigurationsRequest)
+
+
+
+ Version: 10.14.0.cl or later Searches for webhook configurations based on various criteria such as Org, webhook identifier, event type, with support for pagination and sorting. Returns matching webhook configurations with their complete details. 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.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **searchWebhookConfigurationsRequest** | [**SearchWebhookConfigurationsRequest**](SearchWebhookConfigurationsRequest.md)
+
+### Return type
+
+[**WebhookSearchResponse**](WebhookSearchResponse.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** | Webhook configurations retrieved successfully | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
+
+# **sendAgentMessage**
+> Object sendAgentMessage(conversationIdentifier, sendAgentMessageRequest)
+
+
+
+ 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 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.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **conversationIdentifier** | **String**
+| **sendAgentMessageRequest** | [**SendAgentMessageRequest**](SendAgentMessageRequest.md)
+
+### Return type
+
+**Object**
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Common successful response | - |
+| **201** | Common error response | - |
+| **400** | Operation failed | - |
+| **500** | Operation failed | - |
+
# **sendAgentMessageStreaming**
> SendAgentMessageResponse sendAgentMessageStreaming(sendAgentMessageStreamingRequest)
@@ -4161,7 +4384,7 @@ null (empty response body)
- Version: 10.4.0.cl or later Updates a connection object. 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. To update a connection object, pass these parameters in your API request: 1. GUID of the connection object. 2. If you are updating tables or database schema of a connection object: a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`. b. 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. * 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\" } ] } ] } ] } ] } ``` 3. If you are updating a configuration attribute, connection name, or description, you can 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. * 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\":[ ] } ```
+ Version: 10.4.0.cl or later Updates a connection object. 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. To update a connection object, pass these parameters in your API request: 1. GUID of the connection object. 2. If you are updating tables or database schema of a connection object: a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`. b. 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. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: * This is an example of updating a single table in a empty connection: ``` { \"authenticationType\": \"SERVICE_ACCOUNT\", \"externalDatabases\": [ { \"name\": \"DEVELOPMENT\", \"isAutoCreated\": false, \"schemas\": [ { \"name\": \"TS_dataset\", \"tables\": [ { \"name\": \"DEMORENAME\", \"type\": \"TABLE\", \"description\": \"\", \"selected\": true, \"linked\": true, \"gid\": 0, \"datasetId\": \"-1\", \"subType\": \"\", \"reportId\": \"\", \"viewId\": \"\", \"columns\": [ { \"name\": \"Col1\", \"type\": \"VARCHAR\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"Col2\", \"type\": \"VARCHAR\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"Col3\", \"type\": \"VARCHAR\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"Col312\", \"type\": \"VARCHAR\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"Col4\", \"type\": \"VARCHAR\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false } ], \"relationships\": [] } ] } ] } ], \"configuration\": { \"password\": \"\", \"database\": \"DEVELOPMENT\", \"role\": \"DEV\", \"accountName\": \"thoughtspot_partner\", \"warehouse\": \"DEMO_WH\", \"user\": \"DEV_USER\" } } ``` * This is an example of updating a single table in an existing connection with tables: ``` { \"authenticationType\": \"SERVICE_ACCOUNT\", \"externalDatabases\": [ { \"name\": \"DEVELOPMENT\", \"isAutoCreated\": false, \"schemas\": [ { \"name\": \"TS_dataset\", \"tables\": [ { \"name\": \"CUSTOMER\", \"type\": \"TABLE\", \"description\": \"\", \"selected\": true, \"linked\": true, \"gid\": 0, \"datasetId\": \"-1\", \"subType\": \"\", \"reportId\": \"\", \"viewId\": \"\", \"columns\": [], \"relationships\": [] }, { \"name\": \"tpch5k_falcon_default_schema_users\", \"type\": \"TABLE\", \"description\": \"\", \"selected\": true, \"linked\": true, \"gid\": 0, \"datasetId\": \"-1\", \"subType\": \"\", \"reportId\": \"\", \"viewId\": \"\", \"columns\": [ { \"name\": \"user_id\", \"type\": \"INT64\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"product_id\", \"type\": \"INT64\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false }, { \"name\": \"user_cost\", \"type\": \"INT64\", \"canImport\": true, \"selected\": true, \"description\": \"\", \"isLinkedActive\": true, \"isAggregate\": false } ], \"relationships\": [] } ] } ] } ], \"configuration\": { \"password\": \"\", \"database\": \"DEVELOPMENT\", \"role\": \"DEV\", \"accountName\": \"thoughtspot_partner\", \"warehouse\": \"DEMO_WH\", \"user\": \"DEV_USER\" } } ``` 3. If you are updating a configuration attribute, connection name, or description, you can 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. * 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\":[ ] } ```
### Parameters
@@ -4647,7 +4870,7 @@ null (empty response body)
- Update a variable's properties Version: 10.9.0.cl or later Allows updating a variable's properties in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows updating: * The variable name
+ Update a variable's name Version: 10.14.0.cl or later Allows updating a variable's properties in 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 allows updating: * The variable name
### Parameters
@@ -4672,7 +4895,7 @@ null (empty response body)
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **204** | Updating the variable is successful. | - |
+| **204** | Variable name updated successfully. | - |
| **400** | Invalid request. | - |
| **401** | Unauthorized access. | - |
| **403** | Forbidden access. | - |
@@ -4684,7 +4907,7 @@ null (empty response body)
- Update values for multiple variables Version: 10.9.0.cl or later Allows updating values for multiple variables in ThoughtSpot. Requires ADMINISTRATION role. 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, CLEAR) 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. * CLEAR - Removes all constrains for a given variable, scope is ignored
+ 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, CLEAR) 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. * CLEAR - Removes all constrains for a given variable, scope is ignored
### Parameters
@@ -4708,7 +4931,44 @@ null (empty response body)
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **204** | Updating variable values is successful. | - |
+| **204** | Variable values updated successfully. | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
+
+# **updateWebhookConfiguration**
+> updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest)
+
+
+
+ Version: 10.14.0.cl or later Updates an existing webhook configuration by its unique id or name. Only the provided fields will be updated. 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.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **webhookIdentifier** | **String**
+| **updateWebhookConfigurationRequest** | [**UpdateWebhookConfigurationRequest**](UpdateWebhookConfigurationRequest.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** | Webhook configuration updated successfully | - |
| **400** | Invalid request. | - |
| **401** | Unauthorized access. | - |
| **403** | Forbidden access. | - |
diff --git a/sdks/java/docs/TokenAccessScopeObject.md b/sdks/java/docs/TokenAccessScopeObject.md
index f5172f3be..0e232d0bb 100644
--- a/sdks/java/docs/TokenAccessScopeObject.md
+++ b/sdks/java/docs/TokenAccessScopeObject.md
@@ -8,7 +8,7 @@ Objects on which the filter rules and parameters values should be applied to
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**type** | [**TypeEnum**](#TypeEnum) | Type of object. Required if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier. Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported. | [optional] |
+|**type** | [**TypeEnum**](#TypeEnum) | Type of object. Required if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier. Specify the object type as `LOGICAL_TABLE`. | [optional] |
|**identifier** | **String** | Unique name/id of the object. | |
diff --git a/sdks/java/docs/UpdateRoleRequest.md b/sdks/java/docs/UpdateRoleRequest.md
index 9cae67411..9cab971c9 100644
--- a/sdks/java/docs/UpdateRoleRequest.md
+++ b/sdks/java/docs/UpdateRoleRequest.md
@@ -46,6 +46,8 @@
| CAN_CREATE_CATALOG | "CAN_CREATE_CATALOG" |
| CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" |
| CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" |
+| CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" |
+| CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" |
| PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" |
| PREVIEW_THOUGHTSPOT_SAGE | "PREVIEW_THOUGHTSPOT_SAGE" |
| CAN_MANAGE_WEBHOOKS | "CAN_MANAGE_WEBHOOKS" |
diff --git a/sdks/java/docs/UpdateUserGroupRequest.md b/sdks/java/docs/UpdateUserGroupRequest.md
index 1b5c4d4d0..4cfd1348d 100644
--- a/sdks/java/docs/UpdateUserGroupRequest.md
+++ b/sdks/java/docs/UpdateUserGroupRequest.md
@@ -50,6 +50,8 @@
| ALLOW_NON_EMBED_FULL_APP_ACCESS | "ALLOW_NON_EMBED_FULL_APP_ACCESS" |
| CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" |
| CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" |
+| CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" |
+| CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" |
| PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" |
| CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" |
| CAN_DOWNLOAD_VISUALS | "CAN_DOWNLOAD_VISUALS" |
diff --git a/sdks/java/docs/UpdateVariableRequest.md b/sdks/java/docs/UpdateVariableRequest.md
index 3c7187c0c..47ca6fb7d 100644
--- a/sdks/java/docs/UpdateVariableRequest.md
+++ b/sdks/java/docs/UpdateVariableRequest.md
@@ -7,19 +7,7 @@
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**name** | **String** | New name of the variable if we want to rename. | [optional] |
-|**operation** | [**OperationEnum**](#OperationEnum) | Operation to perform on the values. | [optional] |
-|**values** | [**List<InputVariableValue>**](InputVariableValue.md) | Values of variable to be updated. | [optional] |
-
-
-
-## Enum: OperationEnum
-
-| Name | Value |
-|---- | -----|
-| ADD | "ADD" |
-| REMOVE | "REMOVE" |
-| REPLACE | "REPLACE" |
+|**name** | **String** | New name of the variable. | |
## Implemented Interfaces
diff --git a/sdks/java/docs/UpdateVariableValuesRequest.md b/sdks/java/docs/UpdateVariableValuesRequest.md
index fe4de057d..4177b4b49 100644
--- a/sdks/java/docs/UpdateVariableValuesRequest.md
+++ b/sdks/java/docs/UpdateVariableValuesRequest.md
@@ -7,18 +7,8 @@
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**variableUpdates** | [**List<VariableValueInput>**](VariableValueInput.md) | Variables and values | |
-|**operation** | [**OperationEnum**](#OperationEnum) | Type of update operation | |
-
-
-
-## Enum: OperationEnum
-
-| Name | Value |
-|---- | -----|
-| ADD | "ADD" |
-| REMOVE | "REMOVE" |
-| REPLACE | "REPLACE" |
+|**variableAssignment** | [**List<VariableUpdateAssignmentInput>**](VariableUpdateAssignmentInput.md) | Variables and values to update | |
+|**variableValueScope** | [**List<VariableUpdateScopeInput>**](VariableUpdateScopeInput.md) | Variables and values to update | |
## Implemented Interfaces
diff --git a/sdks/java/docs/UpdateWebhookConfigurationRequest.md b/sdks/java/docs/UpdateWebhookConfigurationRequest.md
new file mode 100644
index 000000000..da8645826
--- /dev/null
+++ b/sdks/java/docs/UpdateWebhookConfigurationRequest.md
@@ -0,0 +1,31 @@
+
+
+# UpdateWebhookConfigurationRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | Name of the webhook configuration. | [optional] |
+|**description** | **String** | Description of the webhook configuration. | [optional] |
+|**url** | **String** | The webhook endpoint URL. | [optional] |
+|**urlParams** | **Object** | Additional URL parameters as key-value pairs. | [optional] |
+|**events** | [**List<EventsEnum>**](#List<EventsEnum>) | List of events to subscribe to. | [optional] |
+|**authentication** | [**WebhookAuthenticationInput**](WebhookAuthenticationInput.md) | Authorization configuration for the webhook. | [optional] |
+|**signatureVerification** | [**WebhookSignatureVerificationInput**](WebhookSignatureVerificationInput.md) | Configuration for webhook signature verification. | [optional] |
+
+
+
+## Enum: List<EventsEnum>
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/User.md b/sdks/java/docs/User.md
index 9fb8aeb73..51a8bbc3a 100644
--- a/sdks/java/docs/User.md
+++ b/sdks/java/docs/User.md
@@ -52,6 +52,7 @@
|**extendedPreferences** | **Object** | Preferences for the user | [optional] |
|**userParameters** | **Object** | User Parameters which are specified for the user via JWToken | [optional] |
|**accessControlProperties** | **Object** | Access Control Properties which are specified for the user via JWToken | [optional] |
+|**variableValues** | **Object** | Formula Variables which are specified for the user via JWToken | [optional] |
diff --git a/sdks/java/docs/UserObject.md b/sdks/java/docs/UserObject.md
index 936de81d8..4ee8b7fe0 100644
--- a/sdks/java/docs/UserObject.md
+++ b/sdks/java/docs/UserObject.md
@@ -8,7 +8,7 @@ Objects to apply the User_Object.
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**type** | [**TypeEnum**](#TypeEnum) | Type of object. Required if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier. Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported. | [optional] |
+|**type** | [**TypeEnum**](#TypeEnum) | Type of object. Required if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier. Specify the object type as `LOGICAL_TABLE`. | [optional] |
|**identifier** | **String** | Unique name/id of the object. | |
diff --git a/sdks/java/docs/ValueScopeInput.md b/sdks/java/docs/ValueScopeInput.md
new file mode 100644
index 000000000..b3ad4c7ce
--- /dev/null
+++ b/sdks/java/docs/ValueScopeInput.md
@@ -0,0 +1,30 @@
+
+
+# ValueScopeInput
+
+Input for variable scope in search
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**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** | Model Identifier | [optional] |
+
+
+
+## Enum: PrincipalTypeEnum
+
+| Name | Value |
+|---- | -----|
+| USER | "USER" |
+| USER_GROUP | "USER_GROUP" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/VariableApi.md b/sdks/java/docs/VariableApi.md
index 922ce657d..e0be89f10 100644
--- a/sdks/java/docs/VariableApi.md
+++ b/sdks/java/docs/VariableApi.md
@@ -8,7 +8,7 @@ All URIs are relative to *CLUSTER_URL*
| [**deleteVariable**](VariableApi.md#deleteVariable) | **POST** /api/rest/2.0/template/variables/{identifier}/delete |
| [**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 |
+| [**updateVariableValues**](VariableApi.md#updateVariableValues) | **POST** /api/rest/2.0/template/variables/update-values |
@@ -17,7 +17,7 @@ All URIs are relative to *CLUSTER_URL*
- Create a variable which can be used for parameterizing metadata objects Version: 10.9.0.cl or later Allows creating a variable which can be used for parameterizing metadata objects in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint supports the following types of variables: * CONNECTION_PROPERTY - For connection properties * TABLE_MAPPING - For table mappings * CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this. * FORMULA_VARIABLE - For Formula variables When creating a variable, you need to specify: * The variable type * A unique name for the variable * Whether the variable contains sensitive values (defaults to false) * The data type of the variable, only specify for fomula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid
+ Create a variable which can be used for parameterizing metadata objects Version: 10.14.0.cl or later Allows creating a variable which can be used for parameterizing metadata objects in 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 supports the following types of variables: * CONNECTION_PROPERTY - For connection properties * TABLE_MAPPING - For table mappings * CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this. * FORMULA_VARIABLE - For Formula variables When creating a variable, you need to specify: * The variable type * A unique name for the variable * Whether the variable contains sensitive values (defaults to false) * The data type of the variable, only specify for fomula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid
### Parameters
@@ -53,7 +53,7 @@ All URIs are relative to *CLUSTER_URL*
- Delete a variable Version: 10.9.0.cl or later Allows deleting a variable from ThoughtSpot. Requires ADMINISTRATION role and TENANT 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 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
@@ -89,7 +89,7 @@ null (empty response body)
- Search variables Version: 10.9.0.cl or later Allows searching for variables in ThoughtSpot. Requires ADMINISTRATION role. The API endpoint supports searching variables by: * Variable identifier (ID or name) * Variable type * Name pattern (case-insensitive, supports % for wildcard) The search results can be formatted in three ways: * METADATA_ONLY - Returns only variable metadata (default) * METADATA_AND_VALUES - Returns variable metadata and values * EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values The values can be filtered by scope: * org_identifier * principal_identifier * model_identifier
+ Search variables Version: 10.14.0.cl or later Allows searching for 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 supports searching variables by: * Variable identifier (ID or name) * Variable type * Name pattern (case-insensitive, supports % for wildcard) The search results can be formatted in three ways: * METADATA - Returns only variable metadata (default) * METADATA_AND_VALUES - Returns variable metadata and values The values can be filtered by scope: * org_identifier * principal_identifier * model_identifier
### Parameters
@@ -125,7 +125,7 @@ null (empty response body)
- Update a variable's properties Version: 10.9.0.cl or later Allows updating a variable's properties in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows updating: * The variable name
+ Update a variable's name Version: 10.14.0.cl or later Allows updating a variable's properties in 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 allows updating: * The variable name
### Parameters
@@ -150,7 +150,7 @@ null (empty response body)
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **204** | Updating the variable is successful. | - |
+| **204** | Variable name updated successfully. | - |
| **400** | Invalid request. | - |
| **401** | Unauthorized access. | - |
| **403** | Forbidden access. | - |
@@ -162,7 +162,7 @@ null (empty response body)
- Update values for multiple variables Version: 10.9.0.cl or later Allows updating values for multiple variables in ThoughtSpot. Requires ADMINISTRATION role. 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, CLEAR) 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. * CLEAR - Removes all constrains for a given variable, scope is ignored
+ 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, CLEAR) 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. * CLEAR - Removes all constrains for a given variable, scope is ignored
### Parameters
@@ -186,7 +186,7 @@ null (empty response body)
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **204** | Updating variable values is successful. | - |
+| **204** | Variable values updated successfully. | - |
| **400** | Invalid request. | - |
| **401** | Unauthorized access. | - |
| **403** | Forbidden access. | - |
diff --git a/sdks/java/docs/VariableUpdateAssignmentInput.md b/sdks/java/docs/VariableUpdateAssignmentInput.md
new file mode 100644
index 000000000..10a568712
--- /dev/null
+++ b/sdks/java/docs/VariableUpdateAssignmentInput.md
@@ -0,0 +1,31 @@
+
+
+# VariableUpdateAssignmentInput
+
+Input for variable value update in batch operations
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**variableIdentifier** | **String** | ID or Name of the variable | |
+|**variableValues** | **List<String>** | Values of the variable | |
+|**operation** | [**OperationEnum**](#OperationEnum) | Operation to perform | |
+
+
+
+## Enum: OperationEnum
+
+| Name | Value |
+|---- | -----|
+| ADD | "ADD" |
+| REMOVE | "REMOVE" |
+| REPLACE | "REPLACE" |
+| CLEAR | "CLEAR" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/VariableUpdateScopeInput.md b/sdks/java/docs/VariableUpdateScopeInput.md
new file mode 100644
index 000000000..a1e2a1d7a
--- /dev/null
+++ b/sdks/java/docs/VariableUpdateScopeInput.md
@@ -0,0 +1,31 @@
+
+
+# VariableUpdateScopeInput
+
+Input for variable value update in batch operations
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**orgIdentifier** | **String** | The unique name of the org | |
+|**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/VariableValue.md b/sdks/java/docs/VariableValue.md
index 6c324d576..01bee0cc2 100644
--- a/sdks/java/docs/VariableValue.md
+++ b/sdks/java/docs/VariableValue.md
@@ -8,6 +8,7 @@
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**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] |
|**principalIdentifier** | **String** | Unique ID or name of the principal | [optional] |
diff --git a/sdks/java/docs/WebhookAuthApiKey.md b/sdks/java/docs/WebhookAuthApiKey.md
new file mode 100644
index 000000000..759cb58b4
--- /dev/null
+++ b/sdks/java/docs/WebhookAuthApiKey.md
@@ -0,0 +1,18 @@
+
+
+# WebhookAuthApiKey
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**key** | **String** | The header or query parameter name for the API key. | |
+|**value** | **String** | The API key value. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookAuthApiKeyInput.md b/sdks/java/docs/WebhookAuthApiKeyInput.md
new file mode 100644
index 000000000..5593646ee
--- /dev/null
+++ b/sdks/java/docs/WebhookAuthApiKeyInput.md
@@ -0,0 +1,18 @@
+
+
+# WebhookAuthApiKeyInput
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**key** | **String** | The header or query parameter name for the API key. | |
+|**value** | **String** | The API key value. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookAuthBasicAuth.md b/sdks/java/docs/WebhookAuthBasicAuth.md
new file mode 100644
index 000000000..7b608a5f9
--- /dev/null
+++ b/sdks/java/docs/WebhookAuthBasicAuth.md
@@ -0,0 +1,18 @@
+
+
+# WebhookAuthBasicAuth
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**username** | **String** | Username for basic authentication. | |
+|**password** | **String** | Password for basic authentication. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookAuthBasicAuthInput.md b/sdks/java/docs/WebhookAuthBasicAuthInput.md
new file mode 100644
index 000000000..8189a3b42
--- /dev/null
+++ b/sdks/java/docs/WebhookAuthBasicAuthInput.md
@@ -0,0 +1,18 @@
+
+
+# WebhookAuthBasicAuthInput
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**username** | **String** | Username for basic authentication. | |
+|**password** | **String** | Password for basic authentication. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookAuthOAuth2.md b/sdks/java/docs/WebhookAuthOAuth2.md
new file mode 100644
index 000000000..404cc9e23
--- /dev/null
+++ b/sdks/java/docs/WebhookAuthOAuth2.md
@@ -0,0 +1,19 @@
+
+
+# WebhookAuthOAuth2
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**authorizationUrl** | **String** | OAuth2 authorization server URL. | |
+|**clientId** | **String** | OAuth2 client identifier. | |
+|**clientSecret** | **String** | OAuth2 client secret key. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookAuthOAuth2Input.md b/sdks/java/docs/WebhookAuthOAuth2Input.md
new file mode 100644
index 000000000..e87ed43a0
--- /dev/null
+++ b/sdks/java/docs/WebhookAuthOAuth2Input.md
@@ -0,0 +1,19 @@
+
+
+# WebhookAuthOAuth2Input
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**authorizationUrl** | **String** | OAuth2 authorization server URL. | |
+|**clientId** | **String** | OAuth2 client identifier. | |
+|**clientSecret** | **String** | OAuth2 client secret key. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookAuthentication.md b/sdks/java/docs/WebhookAuthentication.md
new file mode 100644
index 000000000..7bf197c4d
--- /dev/null
+++ b/sdks/java/docs/WebhookAuthentication.md
@@ -0,0 +1,20 @@
+
+
+# WebhookAuthentication
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**API_KEY** | [**WebhookAuthApiKey**](WebhookAuthApiKey.md) | | [optional] |
+|**BASIC_AUTH** | [**WebhookAuthBasicAuth**](WebhookAuthBasicAuth.md) | | [optional] |
+|**BEARER_TOKEN** | **String** | Redacted Bearer token authentication configuration. | [optional] |
+|**OAUTH2** | [**WebhookAuthOAuth2**](WebhookAuthOAuth2.md) | | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookAuthenticationInput.md b/sdks/java/docs/WebhookAuthenticationInput.md
new file mode 100644
index 000000000..f0884b70c
--- /dev/null
+++ b/sdks/java/docs/WebhookAuthenticationInput.md
@@ -0,0 +1,20 @@
+
+
+# WebhookAuthenticationInput
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**API_KEY** | [**WebhookAuthApiKeyInput**](WebhookAuthApiKeyInput.md) | | [optional] |
+|**BASIC_AUTH** | [**WebhookAuthBasicAuthInput**](WebhookAuthBasicAuthInput.md) | | [optional] |
+|**BEARER_TOKEN** | **String** | Bearer token authentication configuration. | [optional] |
+|**OAUTH2** | [**WebhookAuthOAuth2Input**](WebhookAuthOAuth2Input.md) | | [optional] |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookDeleteFailure.md b/sdks/java/docs/WebhookDeleteFailure.md
new file mode 100644
index 000000000..e4bf99daa
--- /dev/null
+++ b/sdks/java/docs/WebhookDeleteFailure.md
@@ -0,0 +1,19 @@
+
+
+# WebhookDeleteFailure
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique identifier of the webhook that failed to delete. | |
+|**name** | **String** | Name of the webhook that failed to delete. | |
+|**error** | **String** | Error message describing why the deletion failed. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookDeleteResponse.md b/sdks/java/docs/WebhookDeleteResponse.md
new file mode 100644
index 000000000..c1917dab4
--- /dev/null
+++ b/sdks/java/docs/WebhookDeleteResponse.md
@@ -0,0 +1,20 @@
+
+
+# WebhookDeleteResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**deletedCount** | **Integer** | Number of webhooks successfully deleted. | |
+|**failedCount** | **Integer** | Number of webhooks that failed to delete. | |
+|**deletedWebhooks** | [**List<WebhookResponse>**](WebhookResponse.md) | List of successfully deleted webhooks. | |
+|**failedWebhooks** | [**List<WebhookDeleteFailure>**](WebhookDeleteFailure.md) | List of webhooks that failed to delete with error details. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookOrg.md b/sdks/java/docs/WebhookOrg.md
new file mode 100644
index 000000000..d30367ea4
--- /dev/null
+++ b/sdks/java/docs/WebhookOrg.md
@@ -0,0 +1,18 @@
+
+
+# WebhookOrg
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique identifier of the org. | |
+|**name** | **String** | Name of the org. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookPagination.md b/sdks/java/docs/WebhookPagination.md
new file mode 100644
index 000000000..ace33df0b
--- /dev/null
+++ b/sdks/java/docs/WebhookPagination.md
@@ -0,0 +1,20 @@
+
+
+# WebhookPagination
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**recordOffset** | **Integer** | The starting record number from where the records are included. | |
+|**recordSize** | **Integer** | The number of records included in the response. | |
+|**totalCount** | **Integer** | Total number of webhook configurations available. | |
+|**hasMore** | **Boolean** | Indicates whether more records are available beyond the current response. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookResponse.md b/sdks/java/docs/WebhookResponse.md
new file mode 100644
index 000000000..0ff44c435
--- /dev/null
+++ b/sdks/java/docs/WebhookResponse.md
@@ -0,0 +1,37 @@
+
+
+# WebhookResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique identifier of the webhook configuration. | |
+|**name** | **String** | Name of the webhook configuration. | |
+|**description** | **String** | Description of the webhook configuration. | [optional] |
+|**org** | [**WebhookOrg**](WebhookOrg.md) | | [optional] |
+|**url** | **String** | The webhook endpoint URL. | |
+|**urlParams** | **Object** | Additional URL parameters as key-value pairs. | [optional] |
+|**events** | [**List<EventsEnum>**](#List<EventsEnum>) | List of events this webhook subscribes to. | |
+|**authentication** | [**WebhookAuthentication**](WebhookAuthentication.md) | | [optional] |
+|**signatureVerification** | [**WebhookSignatureVerification**](WebhookSignatureVerification.md) | | [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] |
+|**lastModifiedBy** | [**WebhookUser**](WebhookUser.md) | | [optional] |
+
+
+
+## Enum: List<EventsEnum>
+
+| Name | Value |
+|---- | -----|
+| LIVEBOARD_SCHEDULE | "LIVEBOARD_SCHEDULE" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookSearchResponse.md b/sdks/java/docs/WebhookSearchResponse.md
new file mode 100644
index 000000000..567508a64
--- /dev/null
+++ b/sdks/java/docs/WebhookSearchResponse.md
@@ -0,0 +1,18 @@
+
+
+# WebhookSearchResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**webhooks** | [**List<WebhookResponse>**](WebhookResponse.md) | List of webhook configurations matching the search criteria. | |
+|**pagination** | [**WebhookPagination**](WebhookPagination.md) | | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookSignatureVerification.md b/sdks/java/docs/WebhookSignatureVerification.md
new file mode 100644
index 000000000..ccd41f0bf
--- /dev/null
+++ b/sdks/java/docs/WebhookSignatureVerification.md
@@ -0,0 +1,36 @@
+
+
+# WebhookSignatureVerification
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | Signature verification method type. | |
+|**header** | **String** | HTTP header where the signature is sent. | |
+|**algorithm** | [**AlgorithmEnum**](#AlgorithmEnum) | Hash algorithm used for signature verification. | |
+|**secret** | **String** | Shared secret used for HMAC signature generation. | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| HMAC_SHA256 | "HMAC_SHA256" |
+
+
+
+## Enum: AlgorithmEnum
+
+| Name | Value |
+|---- | -----|
+| SHA256 | "SHA256" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookSignatureVerificationInput.md b/sdks/java/docs/WebhookSignatureVerificationInput.md
new file mode 100644
index 000000000..5e11d7891
--- /dev/null
+++ b/sdks/java/docs/WebhookSignatureVerificationInput.md
@@ -0,0 +1,36 @@
+
+
+# WebhookSignatureVerificationInput
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | Signature verification method type. | |
+|**header** | **String** | HTTP header where the signature is sent. | |
+|**algorithm** | [**AlgorithmEnum**](#AlgorithmEnum) | Hash algorithm used for signature verification. | |
+|**secret** | **String** | Shared secret used for HMAC signature generation. | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| HMAC_SHA256 | "HMAC_SHA256" |
+
+
+
+## Enum: AlgorithmEnum
+
+| Name | Value |
+|---- | -----|
+| SHA256 | "SHA256" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookSortOptionsInput.md b/sdks/java/docs/WebhookSortOptionsInput.md
new file mode 100644
index 000000000..68ff44bb3
--- /dev/null
+++ b/sdks/java/docs/WebhookSortOptionsInput.md
@@ -0,0 +1,37 @@
+
+
+# WebhookSortOptionsInput
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**fieldName** | [**FieldNameEnum**](#FieldNameEnum) | Name of the field to apply the sort on. | [optional] |
+|**order** | [**OrderEnum**](#OrderEnum) | Sort order: ASC (Ascending) or DESC (Descending). | [optional] |
+
+
+
+## Enum: FieldNameEnum
+
+| Name | Value |
+|---- | -----|
+| CREATED | "CREATED" |
+| MODIFIED | "MODIFIED" |
+| NAME | "NAME" |
+
+
+
+## Enum: OrderEnum
+
+| Name | Value |
+|---- | -----|
+| ASC | "ASC" |
+| DESC | "DESC" |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhookUser.md b/sdks/java/docs/WebhookUser.md
new file mode 100644
index 000000000..0d0b95beb
--- /dev/null
+++ b/sdks/java/docs/WebhookUser.md
@@ -0,0 +1,18 @@
+
+
+# WebhookUser
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique identifier of the user. | |
+|**name** | **String** | Name of the user. | |
+
+
+## Implemented Interfaces
+
+* Serializable
+
+
diff --git a/sdks/java/docs/WebhooksApi.md b/sdks/java/docs/WebhooksApi.md
new file mode 100644
index 000000000..9b43fb478
--- /dev/null
+++ b/sdks/java/docs/WebhooksApi.md
@@ -0,0 +1,157 @@
+# WebhooksApi
+
+All URIs are relative to *CLUSTER_URL*
+
+| Method | HTTP request |
+|------------- | ------------- |
+| [**createWebhookConfiguration**](WebhooksApi.md#createWebhookConfiguration) | **POST** /api/rest/2.0/webhooks/create |
+| [**deleteWebhookConfigurations**](WebhooksApi.md#deleteWebhookConfigurations) | **POST** /api/rest/2.0/webhooks/delete |
+| [**searchWebhookConfigurations**](WebhooksApi.md#searchWebhookConfigurations) | **POST** /api/rest/2.0/webhooks/search |
+| [**updateWebhookConfiguration**](WebhooksApi.md#updateWebhookConfiguration) | **POST** /api/rest/2.0/webhooks/{webhook_identifier}/update |
+
+
+
+# **createWebhookConfiguration**
+> WebhookResponse createWebhookConfiguration(createWebhookConfigurationRequest)
+
+
+
+ Version: 10.14.0.cl or later Creates a new webhook configuration to receive notifications for specified events. The webhook will be triggered when the configured events occur in the system. 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.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **createWebhookConfigurationRequest** | [**CreateWebhookConfigurationRequest**](CreateWebhookConfigurationRequest.md)
+
+### Return type
+
+[**WebhookResponse**](WebhookResponse.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** | Webhook configuration created successfully | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
+
+# **deleteWebhookConfigurations**
+> WebhookDeleteResponse deleteWebhookConfigurations(deleteWebhookConfigurationsRequest)
+
+
+
+ Version: 10.14.0.cl or later Deletes one or more webhook configurations by their unique id or name. Returns status of each deletion operation, including successfully deleted webhooks and any failures with error details. 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.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **deleteWebhookConfigurationsRequest** | [**DeleteWebhookConfigurationsRequest**](DeleteWebhookConfigurationsRequest.md)
+
+### Return type
+
+[**WebhookDeleteResponse**](WebhookDeleteResponse.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** | Webhook configurations deleted successfully | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
+
+# **searchWebhookConfigurations**
+> WebhookSearchResponse searchWebhookConfigurations(searchWebhookConfigurationsRequest)
+
+
+
+ Version: 10.14.0.cl or later Searches for webhook configurations based on various criteria such as Org, webhook identifier, event type, with support for pagination and sorting. Returns matching webhook configurations with their complete details. 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.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **searchWebhookConfigurationsRequest** | [**SearchWebhookConfigurationsRequest**](SearchWebhookConfigurationsRequest.md)
+
+### Return type
+
+[**WebhookSearchResponse**](WebhookSearchResponse.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** | Webhook configurations retrieved successfully | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
+
+# **updateWebhookConfiguration**
+> updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest)
+
+
+
+ Version: 10.14.0.cl or later Updates an existing webhook configuration by its unique id or name. Only the provided fields will be updated. 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.
+
+### Parameters
+
+| Name | Type |
+|------------- | ------------- |
+| **webhookIdentifier** | **String**
+| **updateWebhookConfigurationRequest** | [**UpdateWebhookConfigurationRequest**](UpdateWebhookConfigurationRequest.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** | Webhook configuration updated successfully | - |
+| **400** | Invalid request. | - |
+| **401** | Unauthorized access. | - |
+| **403** | Forbidden access. | - |
+| **500** | Unexpected error | - |
+
diff --git a/sdks/java/pom.xml b/sdks/java/pom.xml
index 957a9a258..6d9651240 100644
--- a/sdks/java/pom.xml
+++ b/sdks/java/pom.xml
@@ -4,7 +4,7 @@
com.thoughtspotrest-api-sdk
- 2.18.0
+ 2.19.0jarrest-api-sdk
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 3e7ad8a4e..7b557e687 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.18.0");
+ setUserAgent("ThoughtSpot-Client/java/2.19.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 0abcbf52e..96b8539de 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.18.0";
+ public static final String VERSION = "2.19.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 c747314da..2aba06554 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/JSON.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/JSON.java
@@ -187,6 +187,12 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.CommitResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.CommiterType.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.CommunicationChannelPreferencesResponse
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.ConfigureCommunicationChannelPreferencesRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.ConnectionConfigurationResponse
.CustomTypeAdapterFactory());
@@ -249,6 +255,9 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.CreateUserRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.CreateVariableRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.CreateWebhookConfigurationRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.CronExpression.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -298,6 +307,9 @@ private static Class getClassByDiscriminator(
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.DeleteOrgEmailCustomizationRequest
.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.DeleteWebhookConfigurationsRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.DeployCommitRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -323,6 +335,11 @@ private static Class getClassByDiscriminator(
.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.EurekaRelevantQuestion.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.EventChannelConfig.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.EventChannelConfigInput
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.ExcludeMetadataListItemInput
.CustomTypeAdapterFactory());
@@ -446,8 +463,6 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.ImportUsersResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.InputEurekaNLSRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.InputVariableValue.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.JWTMetadataObject.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -494,8 +509,18 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.ObjectIDAndName.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.Org.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.OrgChannelConfigInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.OrgChannelConfigResponse
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.OrgDetails.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.OrgInfo.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.OrgPreferenceSearchCriteriaInput
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.OrgResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -632,6 +657,9 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.SearchCalendarsRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.SearchCommitsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.SearchCommunicationChannelPreferencesRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.SearchConfigRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -669,6 +697,12 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.SearchUsersRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.SearchVariablesRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.SearchWebhookConfigurationsRequest
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.SendAgentMessageRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.SendAgentMessageResponse
.CustomTypeAdapterFactory());
@@ -781,6 +815,9 @@ private static Class getClassByDiscriminator(
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.UpdateVariableValuesRequest
.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.UpdateWebhookConfigurationRequest
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.User.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
@@ -799,14 +836,61 @@ private static Class getClassByDiscriminator(
new com.thoughtspot.client.model.ValidateMergeRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.ValidateTokenRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.ValueScopeInput.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.Variable.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.VariableDetailInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.VariableUpdateAssignmentInput
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.VariableUpdateScopeInput
+ .CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
new com.thoughtspot.client.model.VariableValue.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.VariableValueInput.CustomTypeAdapterFactory());
+ new com.thoughtspot.client.model.WebhookAuthApiKey.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookAuthApiKeyInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookAuthBasicAuth.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookAuthBasicAuthInput
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookAuthOAuth2.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookAuthOAuth2Input.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookAuthentication.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookAuthenticationInput
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookDeleteFailure.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookDeleteResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookOrg.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookPagination.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookSearchResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookSignatureVerification
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookSignatureVerificationInput
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookSortOptionsInput
+ .CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(
+ new com.thoughtspot.client.model.WebhookUser.CustomTypeAdapterFactory());
gson = gsonBuilder.create();
}
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 e177b9564..7827f3495 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
@@ -23,6 +23,7 @@
import com.thoughtspot.client.model.GetRelevantQuestionsRequest;
import com.thoughtspot.client.model.QueryGetDecomposedQueryRequest;
import com.thoughtspot.client.model.ResponseMessage;
+import com.thoughtspot.client.model.SendAgentMessageRequest;
import com.thoughtspot.client.model.SendAgentMessageResponse;
import com.thoughtspot.client.model.SendAgentMessageStreamingRequest;
import com.thoughtspot.client.model.SendMessageRequest;
@@ -1054,6 +1055,234 @@ public okhttp3.Call queryGetDecomposedQueryAsync(
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
+ /**
+ * Build call for sendAgentMessage
+ *
+ * @param conversationIdentifier Unique identifier for the conversation (used to track context)
+ * (required)
+ * @param sendAgentMessageRequest (required)
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+ *
+ *
Response Details
+ *
Status Code
Description
Response Headers
+ *
200
Common successful response
-
+ *
201
Common error response
-
+ *
400
Operation failed
-
+ *
500
Operation failed
-
+ *
+ */
+ public okhttp3.Call sendAgentMessageCall(
+ String conversationIdentifier,
+ SendAgentMessageRequest sendAgentMessageRequest,
+ final ApiCallback _callback)
+ throws ApiException {
+ String basePath = null;
+ // Operation Servers
+ String[] localBasePaths = new String[] {};
+
+ // Determine Base Path to Use
+ if (localCustomBaseUrl != null) {
+ basePath = localCustomBaseUrl;
+ } else if (localBasePaths.length > 0) {
+ basePath = localBasePaths[localHostIndex];
+ } else {
+ basePath = null;
+ }
+
+ Object localVarPostBody = sendAgentMessageRequest;
+
+ // create path and map variables
+ String localVarPath =
+ "/api/rest/2.0/ai/agent/{conversation_identifier}/converse"
+ .replace(
+ "{" + "conversation_identifier" + "}",
+ localVarApiClient.escapeString(conversationIdentifier.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {"application/json"};
+ final String localVarContentType =
+ localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ if (localVarContentType != null) {
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+ }
+
+ String[] localVarAuthNames = new String[] {"bearerAuth"};
+ return localVarApiClient.buildCall(
+ basePath,
+ localVarPath,
+ "POST",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarPostBody,
+ localVarHeaderParams,
+ localVarCookieParams,
+ localVarFormParams,
+ localVarAuthNames,
+ _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call sendAgentMessageValidateBeforeCall(
+ String conversationIdentifier,
+ SendAgentMessageRequest sendAgentMessageRequest,
+ final ApiCallback _callback)
+ throws ApiException {
+ // verify the required parameter 'conversationIdentifier' is set
+ if (conversationIdentifier == null) {
+ throw new ApiException(
+ "Missing the required parameter 'conversationIdentifier' when calling"
+ + " sendAgentMessage(Async)");
+ }
+
+ // verify the required parameter 'sendAgentMessageRequest' is set
+ if (sendAgentMessageRequest == null) {
+ throw new ApiException(
+ "Missing the required parameter 'sendAgentMessageRequest' when calling"
+ + " sendAgentMessage(Async)");
+ }
+
+ return sendAgentMessageCall(conversationIdentifier, sendAgentMessageRequest, _callback);
+ }
+
+ /**
+ * 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 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.
+ *
+ * @param conversationIdentifier Unique identifier for the conversation (used to track context)
+ * (required)
+ * @param sendAgentMessageRequest (required)
+ * @return Object
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
+ * response body
+ * @http.response.details
+ *