diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json
index d295422bc..58c893e4a 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"
@@ -1186,6 +1279,14 @@
"items": {
"type": "string"
}
+ },
+ "user_parameters": {
+ "description": "
Version: 9.10.5.cl or laterDeprecated: 10.4.0.cl and later
\n\nDefine 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).",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/User_Parameter_Options"
+ }
+ ]
}
},
"required": [
@@ -1315,6 +1416,14 @@
"items": {
"type": "string"
}
+ },
+ "user_parameters": {
+ "description": "
Version: 9.10.5.cl or laterDeprecated: 10.4.0.cl and later
\n\nDefine 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).",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/User_Parameter_Options"
+ }
+ ]
}
},
"required": [
@@ -2852,7 +2961,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 +4736,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 +4750,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 +4762,7 @@
},
"required": [
"dbt_connection_identifier",
+ "model_tables",
"import_worksheets"
]
}
@@ -5455,6 +5565,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 +5925,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 +6133,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 +6463,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 +8780,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 +9010,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 +9172,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 +11927,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,13 +12234,13 @@
}
}
},
- "/api/rest/2.0/system/config-update": {
+ "/api/rest/2.0/system/preferences/communication-channels/search": {
"post": {
- "operationId": "updateSystemConfig",
- "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration data in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege is required.\n\n\n\n\n#### Endpoint URL\n",
+ "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",
- "9.2.0.cl"
+ "10.14.0.cl"
],
"requestBody": {
"content": {
@@ -12044,14 +12248,24 @@
"schema": {
"type": "object",
"properties": {
- "configuration": {
- "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.",
- "type": "object"
+ "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": [
- "configuration"
- ]
+ }
}
}
},
@@ -12059,8 +12273,45 @@
},
"parameters": [],
"responses": {
- "204": {
- "description": "Configuration successfully updated."
+ "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.",
@@ -12105,13 +12356,13 @@
}
}
},
- "/api/rest/2.0/tags/assign": {
+ "/api/rest/2.0/system/config-update": {
"post": {
- "operationId": "assignTag",
- "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n",
+ "operationId": "updateSystemConfig",
+ "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration data in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege is required.\n\n\n\n\n#### Endpoint URL\n",
"tags": [
- "Tags",
- "9.0.0.cl"
+ "System",
+ "9.2.0.cl"
],
"requestBody": {
"content": {
@@ -12119,24 +12370,13 @@
"schema": {
"type": "object",
"properties": {
- "metadata": {
- "description": "Metadata objects.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/TagMetadataTypeInput"
- }
- },
- "tag_identifiers": {
- "description": "GUID or name of the tag.",
- "type": "array",
- "items": {
- "type": "string"
- }
+ "configuration": {
+ "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.",
+ "type": "object"
}
},
"required": [
- "metadata",
- "tag_identifiers"
+ "configuration"
]
}
}
@@ -12146,7 +12386,7 @@
"parameters": [],
"responses": {
"204": {
- "description": "Tags successfully assigned."
+ "description": "Configuration successfully updated."
},
"400": {
"description": "Invalid request.",
@@ -12191,10 +12431,10 @@
}
}
},
- "/api/rest/2.0/tags/create": {
+ "/api/rest/2.0/tags/assign": {
"post": {
- "operationId": "createTag",
- "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n",
+ "operationId": "assignTag",
+ "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n",
"tags": [
"Tags",
"9.0.0.cl"
@@ -12205,11 +12445,97 @@
"schema": {
"type": "object",
"properties": {
- "name": {
- "description": "Name of the tag.",
- "type": "string"
- },
- "color": {
+ "metadata": {
+ "description": "Metadata objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TagMetadataTypeInput"
+ }
+ },
+ "tag_identifiers": {
+ "description": "GUID or name of the tag.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "metadata",
+ "tag_identifiers"
+ ]
+ }
+ }
+ },
+ "required": true
+ },
+ "parameters": [],
+ "responses": {
+ "204": {
+ "description": "Tags successfully assigned."
+ },
+ "400": {
+ "description": "Invalid request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden access.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/rest/2.0/tags/create": {
+ "post": {
+ "operationId": "createTag",
+ "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n",
+ "tags": [
+ "Tags",
+ "9.0.0.cl"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the tag.",
+ "type": "string"
+ },
+ "color": {
"description": "Hex color code to be assigned to the tag. For example, #ff78a9.",
"type": "string"
}
@@ -13557,6 +13883,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 +14260,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 +14284,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 +14370,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 +14436,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 +14454,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 +14479,7 @@
"type": "string",
"enum": [
"METADATA_ONLY",
- "METADATA_AND_VALUES",
- "EDITABLE_METADATA_AND_VALUES"
+ "METADATA_AND_VALUES"
]
}
}
@@ -14210,10 +14549,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 +14561,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 +14586,7 @@
],
"responses": {
"204": {
- "description": "Updating the variable is successful."
+ "description": "Variable name updated successfully."
},
"400": {
"description": "Invalid request.",
@@ -14306,13 +14631,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 +14645,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 +14672,7 @@
"parameters": [],
"responses": {
"204": {
- "description": "Updating variable values is successful."
+ "description": "Variable values updated successfully."
},
"400": {
"description": "Invalid request.",
@@ -15287,51 +15610,742 @@
}
}
}
- }
- },
- "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."
- },
- "creation_time_in_millis": {
- "type": "number",
- "format": "float",
- "description": "Token creation time in milliseconds."
+ "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"
+ ]
+ }
+ }
},
- "expiration_time_in_millis": {
- "type": "number",
- "format": "float",
- "description": "Token expiration 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"
+ }
+ }
+ }
+ }
+ }
+ }
},
- "valid_for_user_id": {
- "type": "string",
- "description": "Username to whom the token is issued."
+ "400": {
+ "description": "Invalid request.",
+ "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."
- }
+ "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/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"
+ ],
+ "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"
+ ]
+ }
+ }
+ },
+ "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": {
@@ -15624,6 +16638,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 +16874,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 +18249,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 +18287,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 +19042,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 +19624,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 +19706,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 +19887,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 +20361,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 +20703,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 +20959,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 +21109,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 +21221,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 +22100,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 +23254,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 +23310,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 +23525,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": {
@@ -22017,4 +23749,4 @@
}
}
]
-}
+}
\ No newline at end of file
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/CreateEmailCustomisationResponse.md b/sdks/java/docs/CreateEmailCustomisationResponse.md
deleted file mode 100644
index 65a77dacf..000000000
--- a/sdks/java/docs/CreateEmailCustomisationResponse.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-# CreateEmailCustomisationResponse
-
-
-## Properties
-
-| Name | Type | Description | Notes |
-|------------ | ------------- | ------------- | -------------|
-|**tenantId** | **String** | Tenant ID | |
-|**org** | [**OrgType**](OrgType.md) | | |
-|**name** | **String** | Email customization name. | |
-|**templateProperties** | **Object** | Customization configuration for the email | |
-
-
-## Implemented Interfaces
-
-* Serializable
-
-
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/DbtConnectionRequest.md b/sdks/java/docs/DbtConnectionRequest.md
deleted file mode 100644
index e7e067fcc..000000000
--- a/sdks/java/docs/DbtConnectionRequest.md
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-# DbtConnectionRequest
-
-
-## Properties
-
-| Name | Type | Description | Notes |
-|------------ | ------------- | ------------- | -------------|
-|**connectionName** | **String** | Name of the connection. | |
-|**databaseName** | **String** | Name of the Database. | |
-|**importType** | [**ImportTypeEnum**](#ImportTypeEnum) | Mention type of Import | [optional] |
-|**accessToken** | **String** | Access token is mandatory when Import_Type is DBT_CLOUD. | [optional] |
-|**dbtUrl** | **String** | DBT URL is mandatory when Import_Type is DBT_CLOUD. | [optional] |
-|**accountId** | **String** | Account ID is mandatory when Import_Type is DBT_CLOUD | [optional] |
-|**projectId** | **String** | Project ID is mandatory when Import_Type is DBT_CLOUD | [optional] |
-|**dbtEnvId** | **String** | DBT Environment ID\" | [optional] |
-|**projectName** | **String** | Name of the project | [optional] |
-|**fileContent** | **File** | Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE' | [optional] |
-
-
-
-## Enum: ImportTypeEnum
-
-| Name | Value |
-|---- | -----|
-| DBT_CLOUD | "DBT_CLOUD" |
-| ZIP_FILE | "ZIP_FILE" |
-
-
-## Implemented Interfaces
-
-* Serializable
-
-
diff --git a/sdks/java/docs/DbtGenerateSyncTmlRequest.md b/sdks/java/docs/DbtGenerateSyncTmlRequest.md
deleted file mode 100644
index 0c56b5658..000000000
--- a/sdks/java/docs/DbtGenerateSyncTmlRequest.md
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-# DbtGenerateSyncTmlRequest
-
-
-## Properties
-
-| Name | Type | Description | Notes |
-|------------ | ------------- | ------------- | -------------|
-|**dbtConnectionIdentifier** | **String** | Unique ID of the DBT connection. | |
-|**fileContent** | **File** | Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is mandatory if the connection was created with import_type ‘ZIP_FILE’ | [optional] |
-
-
-## Implemented Interfaces
-
-* Serializable
-
-
diff --git a/sdks/java/docs/DbtGenerateTmlRequest.md b/sdks/java/docs/DbtGenerateTmlRequest.md
deleted file mode 100644
index 875bb692d..000000000
--- a/sdks/java/docs/DbtGenerateTmlRequest.md
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-# DbtGenerateTmlRequest
-
-
-## Properties
-
-| Name | Type | Description | Notes |
-|------------ | ------------- | ------------- | -------------|
-|**dbtConnectionIdentifier** | **String** | Unique ID of the DBT connection. | |
-|**modelTables** | [**List<ModelTableList>**](ModelTableList.md) | List of Models and their respective Tables | [optional] |
-|**importWorksheets** | [**ImportWorksheetsEnum**](#ImportWorksheetsEnum) | Mention the worksheet tmls to import | |
-|**worksheets** | **List<String>** | List of worksheets is mandatory when import_Worksheets is type SELECTED | [optional] |
-|**fileContent** | **File** | Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is mandatory if the connection was created with import_type ‘ZIP_FILE’ | [optional] |
-
-
-
-## Enum: ImportWorksheetsEnum
-
-| Name | Value |
-|---- | -----|
-| ALL | "ALL" |
-| NONE | "NONE" |
-| SELECTED | "SELECTED" |
-
-
-## Implemented Interfaces
-
-* Serializable
-
-
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/EmailCustomisationApi.md b/sdks/java/docs/EmailCustomisationApi.md
deleted file mode 100644
index eb47004f1..000000000
--- a/sdks/java/docs/EmailCustomisationApi.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# EmailCustomisationApi
-
-All URIs are relative to *CLUSTER_URL*
-
-| Method | HTTP request |
-|------------- | ------------- |
-| [**createEmailCustomisation**](EmailCustomisationApi.md#createEmailCustomisation) | **POST** /api/rest/2.0/customization/email |
-| [**deleteEmailCustomisation**](EmailCustomisationApi.md#deleteEmailCustomisation) | **POST** /api/rest/2.0/customization/email/{template_identifier}/delete |
-| [**searchEmailCustomisation**](EmailCustomisationApi.md#searchEmailCustomisation) | **POST** /api/rest/2.0/customization/email/search |
-| [**validateEmailCustomisation**](EmailCustomisationApi.md#validateEmailCustomisation) | **POST** /api/rest/2.0/customization/email/validate |
-
-
-
-# **createEmailCustomisation**
-> CreateEmailCustomisationResponse createEmailCustomisation(createEmailCustomisationRequest)
-
-
-
- Version: 10.10.0.cl or later Creates a custom configuration for the email customisation #### Pre-requisites Requires `DEVELOPER` (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `_Has developer privilege` privilege is required. Coms should be enabled on the cluster. #### Usage guidelines To create a custom confuguration: 1. Pass these parameters in your API request. - A JSON map of configuration attributes `template_properties`. The following example shows the configuration attribures for a csutom configuration: ``` { { \"logoUrl\": \"<logo_url>\", \"homeUrl\": \"<home_url>\", \"productName\": \"<Company Name in the Mail>\", \"footerAddress\": \"<address to be visible in the footer>\", \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": <true/false>, \"hideTsVocabularyDefinitions\": <true/false>e, \"hideProductName\": <true/false>, \"hideFooterPhone\": <true/false>, \"hideFooterAddress\": <true/false>, \"hidePrivacyPolicy\": <true/false>, \"hideManageNotification\": <true/false>, \"fontfamily\": \"<to maintain a single font in the entire email>\" } } ```
-
-### Parameters
-
-| Name | Type |
-|------------- | ------------- |
-| **createEmailCustomisationRequest** | [**CreateEmailCustomisationRequest**](CreateEmailCustomisationRequest.md)
-
-### Return type
-
-[**CreateEmailCustomisationResponse**](CreateEmailCustomisationResponse.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** | OK | - |
-| **400** | Invalid request. | - |
-| **403** | Unauthorized access. | - |
-| **500** | Unexpected error | - |
-
-
-# **deleteEmailCustomisation**
-> deleteEmailCustomisation(templateIdentifier)
-
-
-
- Version: 10.10.0.cl or later Deletes the configuration for the email customisation. #### Pre-requisites Requires `DEVELOPER` (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `_Has developer privilege` privilege is required. Coms should be enabled on the cluster. #### Usage guidelines Deletes the configuration available for the cluster/org. Pass the `template_identifier` in the API request. Note: `template_identifier` can be fetched from search API request.
-
-### Parameters
-
-| Name | Type |
-|------------- | ------------- |
-| **templateIdentifier** | **String**
-
-### Return type
-
-null (empty response body)
-
-### Authorization
-
-[bearerAuth](../README.md#bearerAuth)
-
-### HTTP request headers
-
- - **Content-Type**: Not defined
- - **Accept**: application/json
-
-### HTTP response details
-| Status code | Description | Response headers |
-|-------------|-------------|------------------|
-| **204** | Email Customization configuration successfully deleted. | - |
-| **400** | Invalid request. | - |
-| **403** | Unauthorized access. | - |
-| **500** | Unexpected error | - |
-
-
-# **searchEmailCustomisation**
-> List<CreateEmailCustomisationResponse> searchEmailCustomisation()
-
-
-
- Version: 10.10.0.cl or later Search the email customisation configuration if any set for the ThoughtSpot system. #### Pre-requisites Requires `DEVELOPER` (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `_Has developer privilege` privilege is required. Coms should be enabled on the cluster. #### Usage guidelines To get the list of configurations set in the cluster/org.
-
-### Parameters
-This endpoint does not need any parameter.
-
-### Return type
-
-[**List<CreateEmailCustomisationResponse>**](CreateEmailCustomisationResponse.md)
-
-### Authorization
-
-[bearerAuth](../README.md#bearerAuth)
-
-### HTTP request headers
-
- - **Content-Type**: Not defined
- - **Accept**: application/json
-
-### HTTP response details
-| Status code | Description | Response headers |
-|-------------|-------------|------------------|
-| **200** | OK | - |
-| **400** | Invalid request. | - |
-| **403** | Unauthorized access. | - |
-| **500** | Unexpected error | - |
-
-
-# **validateEmailCustomisation**
-> validateEmailCustomisation()
-
-
-
- Version: 10.10.0.cl or later Validates the email customisation configuration if any set for the ThoughtSpot system. #### Pre-requisites Requires `DEVELOPER` (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `_Has developer privilege` privilege is required. Coms should be enabled on the cluster.
-
-### Parameters
-This endpoint does not need any parameter.
-
-### Return type
-
-null (empty response body)
-
-### Authorization
-
-[bearerAuth](../README.md#bearerAuth)
-
-### HTTP request headers
-
- - **Content-Type**: Not defined
- - **Accept**: application/json
-
-### HTTP response details
-| Status code | Description | Response headers |
-|-------------|-------------|------------------|
-| **204** | Triggered test email for customization configuration | - |
-| **400** | Invalid request. | - |
-| **403** | Unauthorized access. | - |
-| **500** | Unexpected error | - |
-
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/CreateEmailCustomisationRequest.md b/sdks/java/docs/OrgDetails.md
similarity index 56%
rename from sdks/java/docs/CreateEmailCustomisationRequest.md
rename to sdks/java/docs/OrgDetails.md
index fa3492e91..0e22f8f2f 100644
--- a/sdks/java/docs/CreateEmailCustomisationRequest.md
+++ b/sdks/java/docs/OrgDetails.md
@@ -1,13 +1,14 @@
-# CreateEmailCustomisationRequest
+# OrgDetails
## Properties
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**templateProperties** | **Object** | Email customization configuration as key value pair | |
+|**id** | **String** | Unique id of the org | |
+|**name** | **String** | Name of the org | |
## Implemented Interfaces
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/UpdateDbtConnectionRequest.md b/sdks/java/docs/UpdateDbtConnectionRequest.md
deleted file mode 100644
index 73be6dee2..000000000
--- a/sdks/java/docs/UpdateDbtConnectionRequest.md
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-# UpdateDbtConnectionRequest
-
-
-## Properties
-
-| Name | Type | Description | Notes |
-|------------ | ------------- | ------------- | -------------|
-|**dbtConnectionIdentifier** | **String** | Unique ID of the DBT Connection. | |
-|**connectionName** | **String** | Name of the connection. | [optional] |
-|**databaseName** | **String** | Name of the Database. | [optional] |
-|**importType** | [**ImportTypeEnum**](#ImportTypeEnum) | Mention type of Import | [optional] |
-|**accessToken** | **String** | Access token is mandatory when Import_Type is DBT_CLOUD. | [optional] |
-|**dbtUrl** | **String** | DBT URL is mandatory when Import_Type is DBT_CLOUD. | [optional] |
-|**accountId** | **String** | Account ID is mandatory when Import_Type is DBT_CLOUD | [optional] |
-|**projectId** | **String** | Project ID is mandatory when Import_Type is DBT_CLOUD | [optional] |
-|**dbtEnvId** | **String** | DBT Environment ID\" | [optional] |
-|**projectName** | **String** | Name of the project | [optional] |
-|**fileContent** | **File** | Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE' | [optional] |
-
-
-
-## Enum: ImportTypeEnum
-
-| Name | Value |
-|---- | -----|
-| DBT_CLOUD | "DBT_CLOUD" |
-| ZIP_FILE | "ZIP_FILE" |
-
-
-## Implemented Interfaces
-
-* Serializable
-
-
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/InputVariableValue.md b/sdks/java/docs/VariableUpdateScopeInput.md
similarity index 69%
rename from sdks/java/docs/InputVariableValue.md
rename to sdks/java/docs/VariableUpdateScopeInput.md
index efd60ca49..a1e2a1d7a 100644
--- a/sdks/java/docs/InputVariableValue.md
+++ b/sdks/java/docs/VariableUpdateScopeInput.md
@@ -1,17 +1,18 @@
-# InputVariableValue
+# VariableUpdateScopeInput
+Input for variable value update in batch operations
## Properties
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**value** | **String** | The connection property value | |
|**orgIdentifier** | **String** | The unique name of the org | |
|**principalType** | [**PrincipalTypeEnum**](#PrincipalTypeEnum) | Principal type | [optional] |
|**principalIdentifier** | **String** | Unique ID or name of the principal | [optional] |
-|**priority** | **Integer** | The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked. | [optional] |
+|**modelIdentifier** | **String** | Unique ID of the model | [optional] |
+|**priority** | **Integer** | Priority level | [optional] |
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/VariableValueInput.md b/sdks/java/docs/VariableValueInput.md
deleted file mode 100644
index 6204e0aee..000000000
--- a/sdks/java/docs/VariableValueInput.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-# VariableValueInput
-
-Input for variable value update
-
-## Properties
-
-| Name | Type | Description | Notes |
-|------------ | ------------- | ------------- | -------------|
-|**variableIdentifier** | **String** | ID or Name of the variable | |
-|**variableValues** | [**List<InputVariableValue>**](InputVariableValue.md) | Values of the variable | |
-
-
-## Implemented Interfaces
-
-* Serializable
-
-
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/ApiCallback.java b/sdks/java/src/main/java/com/thoughtspot/client/ApiCallback.java
index 06d8f5141..f69899eb6 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/ApiCallback.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/ApiCallback.java
@@ -4,8 +4,10 @@
package com.thoughtspot.client;
-import java.util.List;
+import java.io.IOException;
+
import java.util.Map;
+import java.util.List;
/**
* Callback for asynchronous API call.
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..2d44eff36 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/ApiClient.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/ApiClient.java
@@ -4,10 +4,16 @@
package com.thoughtspot.client;
-import com.thoughtspot.client.auth.ApiKeyAuth;
-import com.thoughtspot.client.auth.Authentication;
-import com.thoughtspot.client.auth.HttpBasicAuth;
-import com.thoughtspot.client.auth.HttpBearerAuth;
+import okhttp3.*;
+import okhttp3.internal.http.HttpMethod;
+import okhttp3.internal.tls.OkHostnameVerifier;
+import okhttp3.logging.HttpLoggingInterceptor;
+import okhttp3.logging.HttpLoggingInterceptor.Level;
+import okio.Buffer;
+import okio.BufferedSink;
+import okio.Okio;
+
+import javax.net.ssl.*;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
@@ -25,6 +31,7 @@
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
import java.text.DateFormat;
import java.time.LocalDate;
import java.time.OffsetDateTime;
@@ -35,39 +42,33 @@
import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import javax.net.ssl.*;
-import okhttp3.*;
-import okhttp3.internal.http.HttpMethod;
-import okhttp3.internal.tls.OkHostnameVerifier;
-import okhttp3.logging.HttpLoggingInterceptor;
-import okhttp3.logging.HttpLoggingInterceptor.Level;
-import okio.Buffer;
-import okio.BufferedSink;
-import okio.Okio;
-/** ApiClient class. */
-@javax.annotation.Generated(
- value = "org.openapitools.codegen.languages.JavaClientCodegen",
- comments = "Generator version: 7.12.0")
+import com.thoughtspot.client.auth.Authentication;
+import com.thoughtspot.client.auth.HttpBasicAuth;
+import com.thoughtspot.client.auth.HttpBearerAuth;
+import com.thoughtspot.client.auth.ApiKeyAuth;
+
+/**
+ *
ApiClient class.
+ */
+ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0")
public class ApiClient {
private String basePath = "https://localhost:443";
- protected List servers =
- new ArrayList(
- Arrays.asList(
- new ServerConfiguration(
- "{base-url}",
- "No description provided",
- new HashMap() {
- {
- put(
- "base-url",
- new ServerVariable(
- "No description provided",
- "https://localhost:443",
- new HashSet()));
- }
- })));
+ protected List servers = new ArrayList(Arrays.asList(
+ new ServerConfiguration(
+ "{base-url}",
+ "No description provided",
+ new HashMap() {{
+ put("base-url", new ServerVariable(
+ "No description provided",
+ "https://localhost:443",
+ new HashSet(
+ )
+ ));
+ }}
+ )
+ ));
protected Integer serverIndex = 0;
protected Map serverVariables = null;
private boolean debugging = false;
@@ -92,7 +93,9 @@ public class ApiClient {
private HttpLoggingInterceptor loggingInterceptor;
- /** Basic constructor for ApiClient */
+ /**
+ * Basic constructor for ApiClient
+ */
public ApiClient() {
this((ApiClientConfiguration) null, (OkHttpClient) null);
}
@@ -167,7 +170,7 @@ private void initHttpClient() {
private void initHttpClient(List interceptors) {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.addNetworkInterceptor(getProgressInterceptor());
- for (Interceptor interceptor : interceptors) {
+ for (Interceptor interceptor: interceptors) {
builder.addInterceptor(interceptor);
}
@@ -182,7 +185,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();
}
@@ -286,9 +289,9 @@ public boolean isVerifyingSsl() {
}
/**
- * Configure whether to verify certificate and hostname when making https requests. Default to
- * true. NOTE: Do NOT set to false in production code, otherwise you would face multiple types
- * of cryptographic attacks.
+ * Configure whether to verify certificate and hostname when making https requests.
+ * Default to true.
+ * NOTE: Do NOT set to false in production code, otherwise you would face multiple types of cryptographic attacks.
*
* @param verifyingSsl True to verify TLS/SSL connection
* @return ApiClient
@@ -309,8 +312,8 @@ public InputStream getSslCaCert() {
}
/**
- * Configure the CA certificate to be trusted when making https requests. Use null to reset to
- * default.
+ * Configure the CA certificate to be trusted when making https requests.
+ * Use null to reset to default.
*
* @param sslCaCert input stream for SSL CA cert
* @return ApiClient
@@ -339,7 +342,8 @@ public boolean isHostnameVerification() {
}
/**
- * Configure whether to verify hostname when making https requests. Default to true.
+ * Configure whether to verify hostname when making https requests.
+ * Default to true.
*
* @param hostnameVerification True to verify hostname
* @return ApiClient
@@ -351,7 +355,7 @@ public ApiClient setHostnameVerification(boolean hostnameVerification) {
}
/**
- * Getter for the field keyManagers.
+ *
Getter for the field keyManagers.
*
* @return an array of {@link javax.net.ssl.KeyManager} objects
*/
@@ -360,8 +364,8 @@ public KeyManager[] getKeyManagers() {
}
/**
- * Configure client keys to use for authorization in an SSL session. Use null to reset to
- * default.
+ * Configure client keys to use for authorization in an SSL session.
+ * Use null to reset to default.
*
* @param managers The KeyManagers to use
* @return ApiClient
@@ -373,7 +377,7 @@ public ApiClient setKeyManagers(KeyManager[] managers) {
}
/**
- * Getter for the field dateFormat.
+ *
Getter for the field dateFormat.
*
* @return a {@link java.text.DateFormat} object
*/
@@ -382,7 +386,7 @@ public DateFormat getDateFormat() {
}
/**
- * Setter for the field dateFormat.
+ *
Setter for the field dateFormat.
*
* @param dateFormat a {@link java.text.DateFormat} object
* @return a {@link com.thoughtspot.client.ApiClient} object
@@ -393,7 +397,7 @@ public ApiClient setDateFormat(DateFormat dateFormat) {
}
/**
- * Set SqlDateFormat.
+ *
Set SqlDateFormat.
*
* @param dateFormat a {@link java.text.DateFormat} object
* @return a {@link com.thoughtspot.client.ApiClient} object
@@ -404,7 +408,7 @@ public ApiClient setSqlDateFormat(DateFormat dateFormat) {
}
/**
- * Set OffsetDateTimeFormat.
+ *
Set OffsetDateTimeFormat.
*
* @param dateFormat a {@link java.time.format.DateTimeFormatter} object
* @return a {@link com.thoughtspot.client.ApiClient} object
@@ -415,7 +419,7 @@ public ApiClient setOffsetDateTimeFormat(DateTimeFormatter dateFormat) {
}
/**
- * Set LocalDateFormat.
+ *
Set LocalDateFormat.
*
* @param dateFormat a {@link java.time.format.DateTimeFormatter} object
* @return a {@link com.thoughtspot.client.ApiClient} object
@@ -426,7 +430,7 @@ public ApiClient setLocalDateFormat(DateTimeFormatter dateFormat) {
}
/**
- * Set LenientOnJson.
+ *
Set LenientOnJson.
*
* @param lenientOnJson a boolean
* @return a {@link com.thoughtspot.client.ApiClient} object
@@ -457,7 +461,6 @@ public Authentication getAuthentication(String authName) {
/**
* Helper method to set access token for the first Bearer authentication.
- *
* @param bearerToken Bearer token
*/
public void setBearerToken(String bearerToken) {
@@ -556,8 +559,7 @@ public void setAccessToken(String accessToken) {
* @param region Region
* @param service Service to access to
*/
- public void setAWS4Configuration(
- String accessKey, String secretKey, String region, String service) {
+ public void setAWS4Configuration(String accessKey, String secretKey, String region, String service) {
throw new RuntimeException("No AWS4 authentication configured!");
}
@@ -570,12 +572,7 @@ public void setAWS4Configuration(
* @param region Region
* @param service Service to access to
*/
- public void setAWS4Configuration(
- String accessKey,
- String secretKey,
- String sessionToken,
- String region,
- String service) {
+ public void setAWS4Configuration(String accessKey, String secretKey, String sessionToken, String region, String service) {
throw new RuntimeException("No AWS4 authentication configured!");
}
@@ -647,12 +644,11 @@ public ApiClient setDebugging(boolean debugging) {
}
/**
- * The path of temporary folder used to store downloaded files from endpoints with file
- * response. The default value is null, i.e. using the system's default temporary
- * folder.
+ * The path of temporary folder used to store downloaded files from endpoints
+ * with file response. The default value is null, i.e. using
+ * the system's default temporary folder.
*
- * @see createTempFile
+ * @see createTempFile
* @return Temporary folder path
*/
public String getTempFolderPath() {
@@ -680,18 +676,15 @@ public int getConnectTimeout() {
}
/**
- * Sets the connect timeout (in milliseconds). A value of 0 means no timeout, otherwise values
- * must be between 1 and {@link java.lang.Integer#MAX_VALUE}.
+ * Sets the connect timeout (in milliseconds).
+ * A value of 0 means no timeout, otherwise values must be between 1 and
+ * {@link java.lang.Integer#MAX_VALUE}.
*
* @param connectionTimeout connection timeout in milliseconds
* @return Api client
*/
public ApiClient setConnectTimeout(int connectionTimeout) {
- httpClient =
- httpClient
- .newBuilder()
- .connectTimeout(connectionTimeout, TimeUnit.MILLISECONDS)
- .build();
+ httpClient = httpClient.newBuilder().connectTimeout(connectionTimeout, TimeUnit.MILLISECONDS).build();
return this;
}
@@ -705,15 +698,15 @@ public int getReadTimeout() {
}
/**
- * Sets the read timeout (in milliseconds). A value of 0 means no timeout, otherwise values must
- * be between 1 and {@link java.lang.Integer#MAX_VALUE}.
+ * Sets the read timeout (in milliseconds).
+ * A value of 0 means no timeout, otherwise values must be between 1 and
+ * {@link java.lang.Integer#MAX_VALUE}.
*
* @param readTimeout read timeout in milliseconds
* @return Api client
*/
public ApiClient setReadTimeout(int readTimeout) {
- httpClient =
- httpClient.newBuilder().readTimeout(readTimeout, TimeUnit.MILLISECONDS).build();
+ httpClient = httpClient.newBuilder().readTimeout(readTimeout, TimeUnit.MILLISECONDS).build();
return this;
}
@@ -727,18 +720,19 @@ public int getWriteTimeout() {
}
/**
- * Sets the write timeout (in milliseconds). A value of 0 means no timeout, otherwise values
- * must be between 1 and {@link java.lang.Integer#MAX_VALUE}.
+ * Sets the write timeout (in milliseconds).
+ * A value of 0 means no timeout, otherwise values must be between 1 and
+ * {@link java.lang.Integer#MAX_VALUE}.
*
* @param writeTimeout connection timeout in milliseconds
* @return Api client
*/
public ApiClient setWriteTimeout(int writeTimeout) {
- httpClient =
- httpClient.newBuilder().writeTimeout(writeTimeout, TimeUnit.MILLISECONDS).build();
+ httpClient = httpClient.newBuilder().writeTimeout(writeTimeout, TimeUnit.MILLISECONDS).build();
return this;
}
+
/**
* Format the given parameter object into string.
*
@@ -748,10 +742,8 @@ public ApiClient setWriteTimeout(int writeTimeout) {
public String parameterToString(Object param) {
if (param == null) {
return "";
- } else if (param instanceof Date
- || param instanceof OffsetDateTime
- || param instanceof LocalDate) {
- // Serialize to json string and remove the " enclosing characters
+ } else if (param instanceof Date || param instanceof OffsetDateTime || param instanceof LocalDate) {
+ //Serialize to json string and remove the " enclosing characters
String jsonStr = JSON.serialize(param);
return jsonStr.substring(1, jsonStr.length() - 1);
} else if (param instanceof Collection) {
@@ -771,7 +763,7 @@ public String parameterToString(Object param) {
/**
* Formats the specified query parameter to a list containing a single {@code Pair} object.
*
- *
Note that {@code value} must not be a collection.
+ * Note that {@code value} must not be a collection.
*
* @param name The name of the parameter.
* @param value The value of the parameter.
@@ -792,7 +784,7 @@ public List parameterToPair(String name, Object value) {
/**
* Formats the specified collection query parameters to a list of {@code Pair} objects.
*
- *
Note that the values of each of the returned Pair objects are percent-encoded.
+ * Note that the values of each of the returned Pair objects are percent-encoded.
*
* @param collectionFormat The collection format of the parameter.
* @param name The name of the parameter.
@@ -839,17 +831,17 @@ public List parameterToPairs(String collectionFormat, String name, Collect
return params;
}
- /**
- * Formats the specified free-form query parameters to a list of {@code Pair} objects.
- *
- * @param value The free-form query parameters.
- * @return A list of {@code Pair} objects.
- */
+ /**
+ * Formats the specified free-form query parameters to a list of {@code Pair} objects.
+ *
+ * @param value The free-form query parameters.
+ * @return A list of {@code Pair} objects.
+ */
public List freeFormParameterToPairs(Object value) {
List params = new ArrayList<>();
// preconditions
- if (value == null || !(value instanceof Map)) {
+ if (value == null || !(value instanceof Map )) {
return params;
}
@@ -863,6 +855,7 @@ public List freeFormParameterToPairs(Object value) {
return params;
}
+
/**
* Formats the specified collection path parameter to a string value.
*
@@ -888,7 +881,7 @@ public String collectionPathParameterToString(String collectionFormat, Collectio
delimiter = "|";
}
- StringBuilder sb = new StringBuilder();
+ StringBuilder sb = new StringBuilder() ;
for (Object item : value) {
sb.append(delimiter);
sb.append(parameterToString(item));
@@ -898,7 +891,8 @@ public String collectionPathParameterToString(String collectionFormat, Collectio
}
/**
- * Sanitize filename by removing path. e.g. ../../sun.gif becomes sun.gif
+ * Sanitize filename by removing path.
+ * e.g. ../../sun.gif becomes sun.gif
*
* @param filename The filename to be sanitized
* @return The sanitized filename
@@ -908,10 +902,13 @@ public String sanitizeFilename(String filename) {
}
/**
- * Check if the given MIME is a JSON MIME. JSON MIME examples: application/json
- * application/json; charset=UTF8 APPLICATION/JSON application/vnd.company+json "* / *" is also
- * default to JSON
- *
+ * Check if the given MIME is a JSON MIME.
+ * JSON MIME examples:
+ * application/json
+ * application/json; charset=UTF8
+ * APPLICATION/JSON
+ * application/vnd.company+json
+ * "* / *" is also default to JSON
* @param mime MIME (Multipurpose Internet Mail Extensions)
* @return True if the given MIME is JSON, false otherwise.
*/
@@ -921,12 +918,13 @@ public boolean isJsonMime(String mime) {
}
/**
- * Select the Accept header's value from the given accepts array: if JSON exists in the given
- * array, use it; otherwise use all of them (joining into a string)
+ * Select the Accept header's value from the given accepts array:
+ * if JSON exists in the given array, use it;
+ * otherwise use all of them (joining into a string)
*
* @param accepts The accepts array to select from
- * @return The Accept header to use. If the given array is empty, null will be returned (not to
- * set the Accept header explicitly).
+ * @return The Accept header to use. If the given array is empty,
+ * null will be returned (not to set the Accept header explicitly).
*/
public String selectHeaderAccept(String[] accepts) {
if (accepts.length == 0) {
@@ -936,12 +934,13 @@ public String selectHeaderAccept(String[] accepts) {
}
/**
- * Select the Content-Type header's value from the given array: if JSON exists in the given
- * array, use it; otherwise use the first one of the array.
+ * Select the Content-Type header's value from the given array:
+ * if JSON exists in the given array, use it;
+ * otherwise use the first one of the array.
*
* @param contentTypes The Content-Type array to select from
- * @return The Content-Type header to use. If the given array is empty, returns null. If it
- * matches "any", JSON will be used.
+ * @return The Content-Type header to use. If the given array is empty,
+ * returns null. If it matches "any", JSON will be used.
*/
public String selectHeaderContentType(String[] contentTypes) {
if (contentTypes.length == 0) {
@@ -976,15 +975,15 @@ public String escapeString(String str) {
}
/**
- * Deserialize response body to Java object, according to the return type and the Content-Type
- * response header.
+ * Deserialize response body to Java object, according to the return type and
+ * the Content-Type response header.
*
* @param Type
* @param response HTTP response
* @param returnType The type of the Java object
* @return The deserialized Java object
- * @throws com.thoughtspot.client.ApiException If fail to deserialize response body, i.e. cannot
- * read response body or the Content-Type of the response is not supported.
+ * @throws com.thoughtspot.client.ApiException If fail to deserialize response body, i.e. cannot read response body
+ * or the Content-Type of the response is not supported.
*/
@SuppressWarnings("unchecked")
public T deserialize(Response response, Type returnType) throws ApiException {
@@ -1006,8 +1005,10 @@ public T deserialize(Response response, Type returnType) throws ApiException
String respBody;
try {
- if (response.body() != null) respBody = response.body().string();
- else respBody = null;
+ if (response.body() != null)
+ respBody = response.body().string();
+ else
+ respBody = null;
} catch (IOException e) {
throw new ApiException(e);
}
@@ -1036,8 +1037,8 @@ public T deserialize(Response response, Type returnType) throws ApiException
}
/**
- * Serialize the given Java object into request body according to the object's class and the
- * request Content-Type.
+ * Serialize the given Java object into request body according to the object's
+ * class and the request Content-Type.
*
* @param obj The Java object
* @param contentType The request Content-Type
@@ -1072,8 +1073,7 @@ public RequestBody serialize(Object obj, String contentType) throws ApiException
* Download file from the given response.
*
* @param response An instance of the Response object
- * @throws com.thoughtspot.client.ApiException If fail to read file content from response and
- * write to disk
+ * @throws com.thoughtspot.client.ApiException If fail to read file content from response and write to disk
* @return Downloaded file
*/
public File downloadFileFromResponse(Response response) throws ApiException {
@@ -1121,11 +1121,14 @@ public File prepareDownloadFile(Response response) throws IOException {
suffix = filename.substring(pos);
}
// Files.createTempFile requires the prefix to be at least three characters long
- if (prefix.length() < 3) prefix = "download-";
+ if (prefix.length() < 3)
+ prefix = "download-";
}
- if (tempFolderPath == null) return Files.createTempFile(prefix, suffix).toFile();
- else return Files.createTempFile(Paths.get(tempFolderPath), prefix, suffix).toFile();
+ if (tempFolderPath == null)
+ return Files.createTempFile(prefix, suffix).toFile();
+ else
+ return Files.createTempFile(Paths.get(tempFolderPath), prefix, suffix).toFile();
}
/**
@@ -1146,8 +1149,9 @@ public ApiResponse execute(Call call) throws ApiException {
* @param returnType The return type used to deserialize HTTP response body
* @param The return type corresponding to (same with) returnType
* @param call Call
- * @return ApiResponse object containing response status, headers and data, which is a Java
- * object deserialized from response body and would be null when returnType is null.
+ * @return ApiResponse object containing response status, headers and
+ * data, which is a Java object deserialized from response body and would be null
+ * when returnType is null.
* @throws com.thoughtspot.client.ApiException If fail to execute the call
*/
public ApiResponse execute(Call call, Type returnType) throws ApiException {
@@ -1182,32 +1186,27 @@ public void executeAsync(Call call, ApiCallback callback) {
*/
@SuppressWarnings("unchecked")
public void executeAsync(Call call, final Type returnType, final ApiCallback callback) {
- call.enqueue(
- new Callback() {
- @Override
- public void onFailure(Call call, IOException e) {
- callback.onFailure(new ApiException(e), 0, null);
- }
+ call.enqueue(new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+ callback.onFailure(new ApiException(e), 0, null);
+ }
- @Override
- public void onResponse(Call call, Response response) throws IOException {
- T result;
- try {
- result = (T) handleResponse(response, returnType);
- } catch (ApiException e) {
- callback.onFailure(e, response.code(), response.headers().toMultimap());
- return;
- } catch (Exception e) {
- callback.onFailure(
- new ApiException(e),
- response.code(),
- response.headers().toMultimap());
- return;
- }
- callback.onSuccess(
- result, response.code(), response.headers().toMultimap());
- }
- });
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ T result;
+ try {
+ result = (T) handleResponse(response, returnType);
+ } catch (ApiException e) {
+ callback.onFailure(e, response.code(), response.headers().toMultimap());
+ return;
+ } catch (Exception e) {
+ callback.onFailure(new ApiException(e), response.code(), response.headers().toMultimap());
+ return;
+ }
+ callback.onSuccess(result, response.code(), response.headers().toMultimap());
+ }
+ });
}
/**
@@ -1217,8 +1216,8 @@ public void onResponse(Call call, Response response) throws IOException {
* @param response Response
* @param returnType Return type
* @return Type
- * @throws com.thoughtspot.client.ApiException If the response has an unsuccessful status code
- * or fail to deserialize the response body
+ * @throws com.thoughtspot.client.ApiException If the response has an unsuccessful status code or
+ * fail to deserialize the response body
*/
public T handleResponse(Response response, Type returnType) throws ApiException {
if (response.isSuccessful()) {
@@ -1229,11 +1228,7 @@ public T handleResponse(Response response, Type returnType) throws ApiExcept
try {
response.body().close();
} catch (Exception e) {
- throw new ApiException(
- response.message(),
- e,
- response.code(),
- response.headers().toMultimap());
+ throw new ApiException(response.message(), e, response.code(), response.headers().toMultimap());
}
}
return null;
@@ -1246,15 +1241,10 @@ public T handleResponse(Response response, Type returnType) throws ApiExcept
try {
respBody = response.body().string();
} catch (IOException e) {
- throw new ApiException(
- response.message(),
- e,
- response.code(),
- response.headers().toMultimap());
+ throw new ApiException(response.message(), e, response.code(), response.headers().toMultimap());
}
}
- throw new ApiException(
- response.message(), response.code(), response.headers().toMultimap(), respBody);
+ throw new ApiException(response.message(), response.code(), response.headers().toMultimap(), respBody);
}
}
@@ -1263,8 +1253,7 @@ public T handleResponse(Response response, Type returnType) throws ApiExcept
*
* @param baseUrl The base URL
* @param path The sub-path of the HTTP URL
- * @param method The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and
- * "DELETE"
+ * @param method The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and "DELETE"
* @param queryParams The query parameters
* @param collectionQueryParams The collection query parameters
* @param body The request body object
@@ -1276,32 +1265,8 @@ public T handleResponse(Response response, Type returnType) throws ApiExcept
* @return The HTTP call
* @throws com.thoughtspot.client.ApiException If fail to serialize the request body object
*/
- public Call buildCall(
- String baseUrl,
- String path,
- String method,
- List queryParams,
- List collectionQueryParams,
- Object body,
- Map headerParams,
- Map cookieParams,
- Map formParams,
- String[] authNames,
- ApiCallback callback)
- throws ApiException {
- Request request =
- buildRequest(
- baseUrl,
- path,
- method,
- queryParams,
- collectionQueryParams,
- body,
- headerParams,
- cookieParams,
- formParams,
- authNames,
- callback);
+ public Call buildCall(String baseUrl, String path, String method, List queryParams, List collectionQueryParams, Object body, Map headerParams, Map cookieParams, Map formParams, String[] authNames, ApiCallback callback) throws ApiException {
+ Request request = buildRequest(baseUrl, path, method, queryParams, collectionQueryParams, body, headerParams, cookieParams, formParams, authNames, callback);
return httpClient.newCall(request);
}
@@ -1311,8 +1276,7 @@ public Call buildCall(
*
* @param baseUrl The base URL
* @param path The sub-path of the HTTP URL
- * @param method The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and
- * "DELETE"
+ * @param method The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and "DELETE"
* @param queryParams The query parameters
* @param collectionQueryParams The collection query parameters
* @param body The request body object
@@ -1324,19 +1288,7 @@ public Call buildCall(
* @return The HTTP request
* @throws com.thoughtspot.client.ApiException If fail to serialize the request body object
*/
- public Request buildRequest(
- String baseUrl,
- String path,
- String method,
- List queryParams,
- List collectionQueryParams,
- Object body,
- Map headerParams,
- Map cookieParams,
- Map formParams,
- String[] authNames,
- ApiCallback callback)
- throws ApiException {
+ public Request buildRequest(String baseUrl, String path, String method, List queryParams, List collectionQueryParams, Object body, Map headerParams, Map cookieParams, Map formParams, String[] authNames, ApiCallback callback) throws ApiException {
final String url = buildUrl(baseUrl, path, queryParams, collectionQueryParams);
// prepare HTTP request body
@@ -1358,9 +1310,7 @@ public Request buildRequest(
reqBody = null;
} else {
// use an empty request body (for POST, PUT and PATCH)
- reqBody =
- RequestBody.create(
- "", contentType == null ? null : MediaType.parse(contentType));
+ reqBody = RequestBody.create("", contentType == null ? null : MediaType.parse(contentType));
}
} else {
reqBody = serialize(body, contentType);
@@ -1369,18 +1319,9 @@ public Request buildRequest(
List updatedQueryParams = new ArrayList<>(queryParams);
// update parameters with authentication settings
- updateParamsForAuth(
- authNames,
- updatedQueryParams,
- headerParams,
- cookieParams,
- requestBodyToString(reqBody),
- method,
- URI.create(url));
-
- final Request.Builder reqBuilder =
- new Request.Builder()
- .url(buildUrl(baseUrl, path, updatedQueryParams, collectionQueryParams));
+ updateParamsForAuth(authNames, updatedQueryParams, headerParams, cookieParams, requestBodyToString(reqBody), method, URI.create(url));
+
+ final Request.Builder reqBuilder = new Request.Builder().url(buildUrl(baseUrl, path, updatedQueryParams, collectionQueryParams));
processHeaderParams(headerParams, reqBuilder);
processCookieParams(cookieParams, reqBuilder);
@@ -1409,8 +1350,7 @@ public Request buildRequest(
* @param collectionQueryParams The collection query parameters
* @return The full URL
*/
- public String buildUrl(
- String baseUrl, String path, List queryParams, List collectionQueryParams) {
+ public String buildUrl(String baseUrl, String path, List queryParams, List collectionQueryParams) {
final StringBuilder url = new StringBuilder();
if (baseUrl != null) {
url.append(baseUrl).append(path);
@@ -1418,11 +1358,9 @@ public String buildUrl(
String baseURL;
if (serverIndex != null) {
if (serverIndex < 0 || serverIndex >= servers.size()) {
- throw new ArrayIndexOutOfBoundsException(
- String.format(
- "Invalid index %d when selecting the host settings. Must be"
- + " less than %d",
- serverIndex, servers.size()));
+ throw new ArrayIndexOutOfBoundsException(String.format(
+ "Invalid index %d when selecting the host settings. Must be less than %d", serverIndex, servers.size()
+ ));
}
baseURL = servers.get(serverIndex).URL(serverVariables);
} else {
@@ -1443,9 +1381,7 @@ public String buildUrl(
url.append("&");
}
String value = parameterToString(param.getValue());
- url.append(escapeString(param.getName()))
- .append("=")
- .append(escapeString(value));
+ url.append(escapeString(param.getName())).append("=").append(escapeString(value));
}
}
}
@@ -1495,13 +1431,11 @@ public void processHeaderParams(Map headerParams, Request.Builde
*/
public void processCookieParams(Map cookieParams, Request.Builder reqBuilder) {
for (Entry param : cookieParams.entrySet()) {
- reqBuilder.addHeader(
- "Cookie", String.format("%s=%s", param.getKey(), param.getValue()));
+ reqBuilder.addHeader("Cookie", String.format("%s=%s", param.getKey(), param.getValue()));
}
for (Entry param : defaultCookieMap.entrySet()) {
if (!cookieParams.containsKey(param.getKey())) {
- reqBuilder.addHeader(
- "Cookie", String.format("%s=%s", param.getKey(), param.getValue()));
+ reqBuilder.addHeader("Cookie", String.format("%s=%s", param.getKey(), param.getValue()));
}
}
}
@@ -1518,15 +1452,8 @@ public void processCookieParams(Map cookieParams, Request.Builde
* @param uri URI
* @throws com.thoughtspot.client.ApiException If fails to update the parameters
*/
- public void updateParamsForAuth(
- String[] authNames,
- List queryParams,
- Map headerParams,
- Map cookieParams,
- String payload,
- String method,
- URI uri)
- throws ApiException {
+ public void updateParamsForAuth(String[] authNames, List queryParams, Map headerParams,
+ Map cookieParams, String payload, String method, URI uri) throws ApiException {
for (String authName : authNames) {
Authentication auth = authentications.get(authName);
if (auth == null) {
@@ -1551,8 +1478,8 @@ public RequestBody buildRequestBodyFormEncoding(Map formParams)
}
/**
- * Build a multipart (file uploading) request body with the given form parameters, which could
- * contain text fields and file fields.
+ * Build a multipart (file uploading) request body with the given form parameters,
+ * which could contain text fields and file fields.
*
* @param formParams Form parameters in the form of Map
* @return RequestBody
@@ -1565,7 +1492,7 @@ public RequestBody buildRequestBodyMultipart(Map formParams) {
addPartToMultiPartBuilder(mpBuilder, param.getKey(), file);
} else if (param.getValue() instanceof List) {
List list = (List) param.getValue();
- for (Object item : list) {
+ for (Object item: list) {
if (item instanceof File) {
addPartToMultiPartBuilder(mpBuilder, param.getKey(), (File) item);
} else {
@@ -1597,29 +1524,24 @@ public String guessContentTypeFromFile(File file) {
/**
* Add a Content-Disposition Header for the given key and file to the MultipartBody Builder.
*
- * @param mpBuilder MultipartBody.Builder
+ * @param mpBuilder MultipartBody.Builder
* @param key The key of the Header element
* @param file The file to add to the Header
- */
+ */
private void addPartToMultiPartBuilder(MultipartBody.Builder mpBuilder, String key, File file) {
- Headers partHeaders =
- Headers.of(
- "Content-Disposition",
- "form-data; name=\"" + key + "\"; filename=\"" + file.getName() + "\"");
+ Headers partHeaders = Headers.of("Content-Disposition", "form-data; name=\"" + key + "\"; filename=\"" + file.getName() + "\"");
MediaType mediaType = MediaType.parse(guessContentTypeFromFile(file));
mpBuilder.addPart(partHeaders, RequestBody.create(file, mediaType));
}
/**
- * Add a Content-Disposition Header for the given key and complex object to the MultipartBody
- * Builder.
+ * Add a Content-Disposition Header for the given key and complex object to the MultipartBody Builder.
*
* @param mpBuilder MultipartBody.Builder
* @param key The key of the Header element
* @param obj The complex object to add to the Header
*/
- private void addPartToMultiPartBuilder(
- MultipartBody.Builder mpBuilder, String key, Object obj) {
+ private void addPartToMultiPartBuilder(MultipartBody.Builder mpBuilder, String key, Object obj) {
RequestBody requestBody;
if (obj instanceof String) {
requestBody = RequestBody.create((String) obj, MediaType.parse("text/plain"));
@@ -1638,8 +1560,8 @@ private void addPartToMultiPartBuilder(
}
/**
- * Get network interceptor to add it to the httpClient to track download progress for async
- * requests.
+ * Get network interceptor to add it to the httpClient to track download progress for
+ * async requests.
*/
private Interceptor getProgressInterceptor() {
return new Interceptor() {
@@ -1649,10 +1571,9 @@ public Response intercept(Interceptor.Chain chain) throws IOException {
final Response originalResponse = chain.proceed(request);
if (request.tag() instanceof ApiCallback) {
final ApiCallback callback = (ApiCallback) request.tag();
- return originalResponse
- .newBuilder()
- .body(new ProgressResponseBody(originalResponse.body(), callback))
- .build();
+ return originalResponse.newBuilder()
+ .body(new ProgressResponseBody(originalResponse.body(), callback))
+ .build();
}
return originalResponse;
}
@@ -1660,37 +1581,33 @@ public Response intercept(Interceptor.Chain chain) throws IOException {
}
/**
- * Apply SSL related settings to httpClient according to the current values of verifyingSsl and
- * sslCaCert.
+ * Apply SSL related settings to httpClient according to the current values of
+ * verifyingSsl and sslCaCert.
*/
private void applySslSettings() {
try {
TrustManager[] trustManagers;
HostnameVerifier hostnameVerifier;
if (!verifyingSsl) {
- trustManagers =
- new TrustManager[] {
- new X509TrustManager() {
- @Override
- public void checkClientTrusted(
- java.security.cert.X509Certificate[] chain, String authType)
- throws CertificateException {}
-
- @Override
- public void checkServerTrusted(
- java.security.cert.X509Certificate[] chain, String authType)
- throws CertificateException {}
-
- @Override
- public java.security.cert.X509Certificate[] getAcceptedIssuers() {
- return new java.security.cert.X509Certificate[] {};
- }
+ trustManagers = new TrustManager[]{
+ new X509TrustManager() {
+ @Override
+ public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
+ }
+
+ @Override
+ public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
}
- };
+
+ @Override
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+ return new java.security.cert.X509Certificate[]{};
+ }
+ }
+ };
hostnameVerifier = getHostnameVerifier(false);
} else {
- TrustManagerFactory trustManagerFactory =
- TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+ TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
InputStream sslCaCertStream = getSslCaCert();
if (sslCaCertStream == null) {
@@ -1698,11 +1615,9 @@ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
} else {
char[] password = null; // Any password will work.
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
- Collection extends Certificate> certificates =
- certificateFactory.generateCertificates(sslCaCertStream);
+ Collection extends Certificate> certificates = certificateFactory.generateCertificates(sslCaCertStream);
if (certificates.isEmpty()) {
- throw new IllegalArgumentException(
- "expected non-empty set of trusted certificates");
+ throw new IllegalArgumentException("expected non-empty set of trusted certificates");
}
KeyStore caKeyStore = newEmptyKeyStore(password);
int index = 0;
@@ -1718,12 +1633,8 @@ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagers, trustManagers, new SecureRandom());
- httpClient =
- httpClient
- .newBuilder()
- .sslSocketFactory(
- sslContext.getSocketFactory(),
- (X509TrustManager) trustManagers[0])
+ httpClient = httpClient.newBuilder()
+ .sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustManagers[0])
.hostnameVerifier(hostnameVerifier)
.build();
} catch (GeneralSecurityException e) {
@@ -1745,8 +1656,8 @@ private KeyStore newEmptyKeyStore(char[] password) throws GeneralSecurityExcepti
* Returns the appropriate hostname verifier based on verification setting.
*
* @param enableVerification whether to enable hostname verification
- * @return OkHostnameVerifier.INSTANCE if verification is enabled, anonymous HostnameVerifier
- * that accepts all hostnames if disabled
+ * @return OkHostnameVerifier.INSTANCE if verification is enabled,
+ * anonymous HostnameVerifier that accepts all hostnames if disabled
*/
private static HostnameVerifier getHostnameVerifier(boolean enableVerification) {
if (enableVerification) {
@@ -1766,8 +1677,7 @@ public boolean verify(String hostname, SSLSession session) {
*
* @param requestBody The HTTP request object
* @return The string representation of the HTTP request body
- * @throws com.thoughtspot.client.ApiException If fail to serialize the request body object into
- * a string
+ * @throws com.thoughtspot.client.ApiException If fail to serialize the request body object into a string
*/
private String requestBodyToString(RequestBody requestBody) throws ApiException {
if (requestBody != null) {
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/ApiClientConfiguration.java b/sdks/java/src/main/java/com/thoughtspot/client/ApiClientConfiguration.java
index fbf382d89..6684114a1 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/ApiClientConfiguration.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/ApiClientConfiguration.java
@@ -11,20 +11,19 @@
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
+
import javax.net.ssl.KeyManager;
/**
- * Configuration class for the ThoughtSpot client. This class holds various configuration options
- * such as base path, bearer token, default headers, cookies, SSL verification, hostname
- * verification, and key managers.
+ * Configuration class for the ThoughtSpot client.
+ * This class holds various configuration options such as base path, bearer token,
+ * default headers, cookies, SSL verification, hostname verification, and key managers.
*/
-@javax.annotation.Generated(
- value = "org.openapitools.codegen.languages.JavaClientCodegen",
- comments = "Generator version: 7.12.0")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0")
public class ApiClientConfiguration {
private static final String DEFAULT_BASE_PATH = "https://localhost:443";
- private static final int DEFAULT_CONNECT_TIMEOUT_MILLIS = 60000; // 1 minute
- private static final int DEFAULT_READ_WRITE_TIMEOUT_MILLIS = 300000; // 5 minutes
+ private static final int DEFAULT_CONNECT_TIMEOUT_MILLIS = 60000; // 1 minute
+ private static final int DEFAULT_READ_WRITE_TIMEOUT_MILLIS = 300000; // 5 minutes
private final String basePath;
private final Supplier bearerTokenSupplier;
@@ -40,47 +39,23 @@ public class ApiClientConfiguration {
private final int writeTimeoutMillis;
/**
- * Default constructor that initializes the configuration with default values. Sets base path to
- * {@link #DEFAULT_BASE_PATH}, connect timeout to {@link #DEFAULT_CONNECT_TIMEOUT_MILLIS}, and
- * read/write timeouts to {@link #DEFAULT_READ_WRITE_TIMEOUT_MILLIS}.
+ * Default constructor that initializes the configuration with default values.
+ * Sets base path to {@link #DEFAULT_BASE_PATH}, connect timeout to {@link #DEFAULT_CONNECT_TIMEOUT_MILLIS},
+ * and read/write timeouts to {@link #DEFAULT_READ_WRITE_TIMEOUT_MILLIS}.
*/
public ApiClientConfiguration() {
- this(
- DEFAULT_BASE_PATH,
- () -> (String) null,
- Collections.emptyMap(),
- Collections.emptyMap(),
- true,
- null,
- true,
- Collections.emptyList(),
- null,
- DEFAULT_CONNECT_TIMEOUT_MILLIS,
- DEFAULT_READ_WRITE_TIMEOUT_MILLIS,
- DEFAULT_READ_WRITE_TIMEOUT_MILLIS);
+ this(DEFAULT_BASE_PATH, () -> (String) null, Collections.emptyMap(), Collections.emptyMap(), true, null, true, Collections.emptyList(), null, DEFAULT_CONNECT_TIMEOUT_MILLIS, DEFAULT_READ_WRITE_TIMEOUT_MILLIS, DEFAULT_READ_WRITE_TIMEOUT_MILLIS);
}
/**
- * Constructor that initializes the configuration with a specified base path. Sets connect
- * timeout to {@link #DEFAULT_CONNECT_TIMEOUT_MILLIS}, and read/write timeouts to {@link
- * #DEFAULT_READ_WRITE_TIMEOUT_MILLIS}.
+ * Constructor that initializes the configuration with a specified base path.
+ * Sets connect timeout to {@link #DEFAULT_CONNECT_TIMEOUT_MILLIS},
+ * and read/write timeouts to {@link #DEFAULT_READ_WRITE_TIMEOUT_MILLIS}.
*
* @param basePath The base path for the API.
*/
public ApiClientConfiguration(String basePath) {
- this(
- basePath,
- () -> (String) null,
- Collections.emptyMap(),
- Collections.emptyMap(),
- true,
- null,
- true,
- Collections.emptyList(),
- null,
- DEFAULT_CONNECT_TIMEOUT_MILLIS,
- DEFAULT_READ_WRITE_TIMEOUT_MILLIS,
- DEFAULT_READ_WRITE_TIMEOUT_MILLIS);
+ this(basePath, () -> (String) null, Collections.emptyMap(), Collections.emptyMap(), true, null, true, Collections.emptyList(), null, DEFAULT_CONNECT_TIMEOUT_MILLIS, DEFAULT_READ_WRITE_TIMEOUT_MILLIS, DEFAULT_READ_WRITE_TIMEOUT_MILLIS);
}
/**
@@ -94,14 +69,10 @@ public ApiClientConfiguration(String basePath) {
* @param sslCaCert The SSL CA certificate input stream.
* @param hostnameVerification Whether to verify hostname when making https requests.
* @param keyManagers List of key managers for SSL configuration.
- * @param downloadPath The path for downloading files. If null, system's default temporary
- * folder will be used.
- * @param connectTimeoutMillis Connection timeout in milliseconds. Must be between 1 and {@link
- * Integer#MAX_VALUE}.
- * @param readTimeoutMillis Read timeout in milliseconds. Must be between 1 and {@link
- * Integer#MAX_VALUE}.
- * @param writeTimeoutMillis Write timeout in milliseconds. Must be between 1 and {@link
- * Integer#MAX_VALUE}.
+ * @param downloadPath The path for downloading files. If null, system's default temporary folder will be used.
+ * @param connectTimeoutMillis Connection timeout in milliseconds. Must be between 1 and {@link Integer#MAX_VALUE}.
+ * @param readTimeoutMillis Read timeout in milliseconds. Must be between 1 and {@link Integer#MAX_VALUE}.
+ * @param writeTimeoutMillis Write timeout in milliseconds. Must be between 1 and {@link Integer#MAX_VALUE}.
*/
public ApiClientConfiguration(
final String basePath,
@@ -115,20 +86,9 @@ public ApiClientConfiguration(
final String downloadPath,
final int connectTimeoutMillis,
final int readTimeoutMillis,
- final int writeTimeoutMillis) {
- this(
- basePath,
- () -> bearerToken,
- defaultHeaderMap,
- defaultCookieMap,
- verifyingSsl,
- sslCaCert,
- hostnameVerification,
- keyManagers,
- downloadPath,
- connectTimeoutMillis,
- readTimeoutMillis,
- writeTimeoutMillis);
+ final int writeTimeoutMillis
+ ) {
+ this(basePath, () -> bearerToken, defaultHeaderMap, defaultCookieMap, verifyingSsl, sslCaCert, hostnameVerification, keyManagers, downloadPath, connectTimeoutMillis, readTimeoutMillis, writeTimeoutMillis);
}
/**
@@ -142,14 +102,10 @@ public ApiClientConfiguration(
* @param sslCaCert The SSL CA certificate input stream.
* @param hostnameVerification Whether to verify hostname when making https requests.
* @param keyManagers List of key managers for SSL configuration.
- * @param downloadPath The path for downloading files. If null, system's default temporary
- * folder will be used.
- * @param connectTimeoutMillis Connection timeout in milliseconds. Must be between 1 and {@link
- * Integer#MAX_VALUE}.
- * @param readTimeoutMillis Read timeout in milliseconds. Must be between 1 and {@link
- * Integer#MAX_VALUE}.
- * @param writeTimeoutMillis Write timeout in milliseconds. Must be between 1 and {@link
- * Integer#MAX_VALUE}.
+ * @param downloadPath The path for downloading files. If null, system's default temporary folder will be used.
+ * @param connectTimeoutMillis Connection timeout in milliseconds. Must be between 1 and {@link Integer#MAX_VALUE}.
+ * @param readTimeoutMillis Read timeout in milliseconds. Must be between 1 and {@link Integer#MAX_VALUE}.
+ * @param writeTimeoutMillis Write timeout in milliseconds. Must be between 1 and {@link Integer#MAX_VALUE}.
*/
public ApiClientConfiguration(
final String basePath,
@@ -163,24 +119,22 @@ public ApiClientConfiguration(
final String downloadPath,
final int connectTimeoutMillis,
final int readTimeoutMillis,
- final int writeTimeoutMillis) {
+ final int writeTimeoutMillis
+ ) {
this.basePath = normalizeBasePath(basePath);
this.bearerTokenSupplier = bearerTokenSupplier;
- this.defaultHeaderMap =
- defaultHeaderMap != null
- ? Collections.unmodifiableMap(new HashMap<>(defaultHeaderMap))
- : Collections.emptyMap();
- this.defaultCookieMap =
- defaultCookieMap != null
- ? Collections.unmodifiableMap(new HashMap<>(defaultCookieMap))
- : Collections.emptyMap();
+ this.defaultHeaderMap = defaultHeaderMap != null
+ ? Collections.unmodifiableMap(new HashMap<>(defaultHeaderMap))
+ : Collections.emptyMap();
+ this.defaultCookieMap = defaultCookieMap != null
+ ? Collections.unmodifiableMap(new HashMap<>(defaultCookieMap))
+ : Collections.emptyMap();
this.verifyingSsl = verifyingSsl;
this.sslCaCert = sslCaCert;
this.hostnameVerification = hostnameVerification;
- this.keyManagers =
- keyManagers != null
- ? Collections.unmodifiableList(new ArrayList<>(keyManagers))
- : Collections.emptyList();
+ this.keyManagers = keyManagers != null
+ ? Collections.unmodifiableList(new ArrayList<>(keyManagers))
+ : Collections.emptyList();
this.downloadPath = downloadPath;
this.connectTimeoutMillis = connectTimeoutMillis;
this.readTimeoutMillis = readTimeoutMillis;
@@ -200,47 +154,65 @@ private static String normalizeBasePath(String basePath) {
return basePath.replaceAll("/+$", "");
}
- /** @return The base path for the API. */
+ /**
+ * @return The base path for the API.
+ */
public String getBasePath() {
return basePath;
}
- /** @return The bearer token for authentication. */
+ /**
+ * @return The bearer token for authentication.
+ */
public String getBearerToken() {
return bearerTokenSupplier.get();
}
- /** @return The bearer token supplier for authentication. */
+ /**
+ * @return The bearer token supplier for authentication.
+ */
public Supplier getBearerTokenSupplier() {
return bearerTokenSupplier;
}
- /** @return An unmodifiable map of default headers. */
+ /**
+ * @return An unmodifiable map of default headers.
+ */
public Map getDefaultHeaderMap() {
return defaultHeaderMap;
}
- /** @return An unmodifiable map of default cookies. */
+ /**
+ * @return An unmodifiable map of default cookies.
+ */
public Map getDefaultCookieMap() {
return defaultCookieMap;
}
- /** @return Whether SSL verification is enabled. */
+ /**
+ * @return Whether SSL verification is enabled.
+ */
public boolean isVerifyingSsl() {
return verifyingSsl;
}
- /** @return The SSL CA certificate input stream. */
+ /**
+ * @return The SSL CA certificate input stream.
+ */
public InputStream getSslCaCert() {
return sslCaCert;
}
- /** @return Whether hostname verification is enabled. */
+ /**
+ * @return Whether hostname verification is enabled.
+ */
public boolean isHostnameVerification() {
return hostnameVerification;
}
- /** @return An unmodifiable list of key managers. */
+ /**
+ * @return An unmodifiable list of key managers.
+ */
public List getKeyManagers() {
return keyManagers;
}
@@ -252,50 +224,45 @@ public String getDownloadPath() {
return downloadPath;
}
- /** @return The connection timeout in milliseconds. */
+ /**
+ * @return The connection timeout in milliseconds.
+ */
public int getConnectTimeoutMillis() {
return connectTimeoutMillis;
}
- /** @return The read timeout in milliseconds. */
+ /**
+ * @return The read timeout in milliseconds.
+ */
public int getReadTimeoutMillis() {
return readTimeoutMillis;
}
- /** @return The write timeout in milliseconds. */
+ /**
+ * @return The write timeout in milliseconds.
+ */
public int getWriteTimeoutMillis() {
return writeTimeoutMillis;
}
- /** @return A string representation of the client configuration. */
+ /**
+ * @return A string representation of the client configuration.
+ */
@Override
public String toString() {
- return "ApiClientConfiguration{"
- + "basePath='"
- + basePath
- + '\''
- + ", defaultHeaderMap="
- + defaultHeaderMap
- + ", defaultCookieMap="
- + defaultCookieMap
- + ", verifyingSsl="
- + verifyingSsl
- + ", sslCaCert="
- + sslCaCert
- + ", hostnameVerification="
- + hostnameVerification
- + ", keyManagers="
- + keyManagers
- + ", downloadPath='"
- + downloadPath
- + '\''
- + ", connectTimeoutMillis="
- + connectTimeoutMillis
- + ", readTimeoutMillis="
- + readTimeoutMillis
- + ", writeTimeoutMillis="
- + writeTimeoutMillis
- + '}';
+ return "ApiClientConfiguration{" +
+ "basePath='" + basePath + '\'' +
+ ", defaultHeaderMap=" + defaultHeaderMap +
+ ", defaultCookieMap=" + defaultCookieMap +
+ ", verifyingSsl=" + verifyingSsl +
+ ", sslCaCert=" + sslCaCert +
+ ", hostnameVerification=" + hostnameVerification +
+ ", keyManagers=" + keyManagers +
+ ", downloadPath='" + downloadPath + '\'' +
+ ", connectTimeoutMillis=" + connectTimeoutMillis +
+ ", readTimeoutMillis=" + readTimeoutMillis +
+ ", writeTimeoutMillis=" + writeTimeoutMillis +
+ '}';
}
/**
@@ -307,7 +274,9 @@ public Builder toBuilder() {
return new Builder(this);
}
- /** Builder class for constructing a {@link ApiClientConfiguration} instance. */
+ /**
+ * Builder class for constructing a {@link ApiClientConfiguration} instance.
+ */
public static class Builder {
private String basePath;
private Supplier bearerTokenSupplier;
@@ -323,8 +292,8 @@ public static class Builder {
private int writeTimeoutMillis;
/**
- * Default constructor that initializes the builder with default values. Sets base path to
- * {@link #DEFAULT_BASE_PATH}, connect timeout to {@link #DEFAULT_CONNECT_TIMEOUT_MILLIS},
+ * Default constructor that initializes the builder with default values.
+ * Sets base path to {@link #DEFAULT_BASE_PATH}, connect timeout to {@link #DEFAULT_CONNECT_TIMEOUT_MILLIS},
* and read/write timeouts to {@link #DEFAULT_READ_WRITE_TIMEOUT_MILLIS}.
*/
public Builder() {
@@ -491,16 +460,14 @@ public Builder keyManager(KeyManager keyManager) {
* @return The builder instance.
*/
public Builder keyManagers(List keyManagers) {
- this.keyManagers =
- keyManagers != null ? new ArrayList<>(keyManagers) : new ArrayList<>();
+ this.keyManagers = keyManagers != null ? new ArrayList<>(keyManagers) : new ArrayList<>();
return this;
}
/**
* Sets the download path for files.
*
- * @param downloadPath The path for downloading files. If null, system's default temporary
- * folder will be used.
+ * @param downloadPath The path for downloading files. If null, system's default temporary folder will be used.
* @return The builder instance.
*/
public Builder downloadPath(String downloadPath) {
@@ -511,8 +478,7 @@ public Builder downloadPath(String downloadPath) {
/**
* Sets the connection timeout.
*
- * @param connectTimeoutMillis Connection timeout in milliseconds. Must be between 1 and
- * {@link Integer#MAX_VALUE}.
+ * @param connectTimeoutMillis Connection timeout in milliseconds. Must be between 1 and {@link Integer#MAX_VALUE}.
* @return The builder instance.
*/
public Builder connectTimeoutMillis(int connectTimeoutMillis) {
@@ -523,8 +489,7 @@ public Builder connectTimeoutMillis(int connectTimeoutMillis) {
/**
* Sets the read timeout.
*
- * @param readTimeoutMillis Read timeout in milliseconds. Must be between 1 and {@link
- * Integer#MAX_VALUE}.
+ * @param readTimeoutMillis Read timeout in milliseconds. Must be between 1 and {@link Integer#MAX_VALUE}.
* @return The builder instance.
*/
public Builder readTimeoutMillis(int readTimeoutMillis) {
@@ -535,8 +500,7 @@ public Builder readTimeoutMillis(int readTimeoutMillis) {
/**
* Sets the write timeout.
*
- * @param writeTimeoutMillis Write timeout in milliseconds. Must be between 1 and {@link
- * Integer#MAX_VALUE}.
+ * @param writeTimeoutMillis Write timeout in milliseconds. Must be between 1 and {@link Integer#MAX_VALUE}.
* @return The builder instance.
*/
public Builder writeTimeoutMillis(int writeTimeoutMillis) {
@@ -562,7 +526,8 @@ public ApiClientConfiguration build() {
downloadPath,
connectTimeoutMillis,
readTimeoutMillis,
- writeTimeoutMillis);
+ writeTimeoutMillis
+ );
}
}
}
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/ApiException.java b/sdks/java/src/main/java/com/thoughtspot/client/ApiException.java
index bbc8cccb5..4f80b7b6e 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/ApiException.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/ApiException.java
@@ -4,14 +4,15 @@
package com.thoughtspot.client;
-import java.util.List;
import java.util.Map;
+import java.util.List;
+
-/** ApiException class. */
+/**
+ *
ApiException class.
+ */
@SuppressWarnings("serial")
-@javax.annotation.Generated(
- value = "org.openapitools.codegen.languages.JavaClientCodegen",
- comments = "Generator version: 7.12.0")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0")
public class ApiException extends Exception {
private static final long serialVersionUID = 1L;
@@ -19,11 +20,13 @@ public class ApiException extends Exception {
private Map> responseHeaders = null;
private String responseBody = null;
- /** Constructor for ApiException. */
+ /**
+ *
Constructor for ApiException.
+ */
public ApiException() {}
/**
- * Constructor for ApiException.
+ *
Constructor for ApiException.
*
* @param throwable a {@link java.lang.Throwable} object
*/
@@ -32,7 +35,7 @@ public ApiException(Throwable throwable) {
}
/**
- * Constructor for ApiException.
+ *
Constructor for ApiException.
*
* @param message the error message
*/
@@ -41,7 +44,7 @@ public ApiException(String message) {
}
/**
- * Constructor for ApiException.
+ *
Constructor for ApiException.
*
* @param message the error message
* @param throwable a {@link java.lang.Throwable} object
@@ -49,12 +52,7 @@ public ApiException(String message) {
* @param responseHeaders a {@link java.util.Map} of HTTP response headers
* @param responseBody the response body
*/
- public ApiException(
- String message,
- Throwable throwable,
- int code,
- Map> responseHeaders,
- String responseBody) {
+ public ApiException(String message, Throwable throwable, int code, Map> responseHeaders, String responseBody) {
super(message, throwable);
this.code = code;
this.responseHeaders = responseHeaders;
@@ -62,55 +60,42 @@ public ApiException(
}
/**
- * Constructor for ApiException.
+ *
Constructor for ApiException.
*
* @param message the error message
* @param code HTTP status code
* @param responseHeaders a {@link java.util.Map} of HTTP response headers
* @param responseBody the response body
*/
- public ApiException(
- String message,
- int code,
- Map> responseHeaders,
- String responseBody) {
+ public ApiException(String message, int code, Map> responseHeaders, String responseBody) {
this(message, (Throwable) null, code, responseHeaders, responseBody);
}
/**
- * Constructor for ApiException.
+ *
Constructor for ApiException.
*
* @param message the error message
* @param throwable a {@link java.lang.Throwable} object
* @param code HTTP status code
* @param responseHeaders a {@link java.util.Map} of HTTP response headers
*/
- public ApiException(
- String message,
- Throwable throwable,
- int code,
- Map> responseHeaders) {
+ public ApiException(String message, Throwable throwable, int code, Map> responseHeaders) {
this(message, throwable, code, responseHeaders, null);
}
/**
- * Constructor for ApiException.
+ *
*
* @param code HTTP status code
* @param message a {@link java.lang.String} object
@@ -121,18 +106,14 @@ public ApiException(int code, String message) {
}
/**
- * Constructor for ApiException.
+ *
Constructor for ApiException.
*
* @param code HTTP status code
* @param message the error message
* @param responseHeaders a {@link java.util.Map} of HTTP response headers
* @param responseBody the response body
*/
- public ApiException(
- int code,
- String message,
- Map> responseHeaders,
- String responseBody) {
+ public ApiException(int code, String message, Map> responseHeaders, String responseBody) {
this(code, message);
this.responseHeaders = responseHeaders;
this.responseBody = responseBody;
@@ -171,12 +152,7 @@ public String getResponseBody() {
* @return The exception message
*/
public String getMessage() {
- return String.format(
- "Message: %s%nHTTP response code: %s%nHTTP response body: %s%nHTTP response"
- + " headers: %s",
- super.getMessage(),
- this.getCode(),
- this.getResponseBody(),
- this.getResponseHeaders());
+ return String.format("Message: %s%nHTTP response code: %s%nHTTP response body: %s%nHTTP response headers: %s",
+ super.getMessage(), this.getCode(), this.getResponseBody(), this.getResponseHeaders());
}
}
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/ApiResponse.java b/sdks/java/src/main/java/com/thoughtspot/client/ApiResponse.java
index 5ab3d1a5c..bc0263899 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/ApiResponse.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/ApiResponse.java
@@ -7,14 +7,16 @@
import java.util.List;
import java.util.Map;
-/** API response returned by API call. */
+/**
+ * API response returned by API call.
+ */
public class ApiResponse {
- private final int statusCode;
- private final Map> headers;
- private final T data;
+ final private int statusCode;
+ final private Map> headers;
+ final private T data;
/**
- * Constructor for ApiResponse.
+ *
Constructor for ApiResponse.
*
* @param statusCode The status code of HTTP response
* @param headers The headers of HTTP response
@@ -24,7 +26,7 @@ public ApiResponse(int statusCode, Map> headers) {
}
/**
- * Constructor for ApiResponse.
+ *
Constructor for ApiResponse.
*
* @param statusCode The status code of HTTP response
* @param headers The headers of HTTP response
@@ -37,7 +39,7 @@ public ApiResponse(int statusCode, Map> headers, T data) {
}
/**
- * Get the status code.
+ *
Get the status code.
*
* @return the status code
*/
@@ -46,16 +48,16 @@ public int getStatusCode() {
}
/**
- * Get the headers.
+ *
Get the headers.
*
- * @return a {@link java.util.Map} of headers
+ * @return a {@link java.util.Map} of headers
*/
public Map> getHeaders() {
return headers;
}
/**
- * Get the data.
+ *
Get the data.
*
* @return the data
*/
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..b38f5ff8a 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/Configuration.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/Configuration.java
@@ -4,17 +4,15 @@
package com.thoughtspot.client;
-@javax.annotation.Generated(
- value = "org.openapitools.codegen.languages.JavaClientCodegen",
- comments = "Generator version: 7.12.0")
+@javax.annotation.Generated(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();
/**
- * Get the default API client, which would be used when creating API instances without providing
- * an API client.
+ * Get the default API client, which would be used when creating API
+ * instances without providing an API client.
*
* @return Default API client
*/
@@ -23,8 +21,8 @@ public static ApiClient getDefaultApiClient() {
}
/**
- * Set the default API client, which would be used when creating API instances without providing
- * an API client.
+ * Set the default API client, which would be used when creating API
+ * instances without providing an API client.
*
* @param apiClient API client
*/
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/GzipRequestInterceptor.java b/sdks/java/src/main/java/com/thoughtspot/client/GzipRequestInterceptor.java
index 3795cdc77..2508466f5 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/GzipRequestInterceptor.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/GzipRequestInterceptor.java
@@ -4,17 +4,18 @@
package com.thoughtspot.client;
-import java.io.IOException;
import okhttp3.*;
import okio.Buffer;
import okio.BufferedSink;
import okio.GzipSink;
import okio.Okio;
+import java.io.IOException;
+
/**
* Encodes request bodies using gzip.
*
- *
Taken from https://github.com/square/okhttp/issues/350
+ * Taken from https://github.com/square/okhttp/issues/350
*/
class GzipRequestInterceptor implements Interceptor {
@Override
@@ -24,14 +25,10 @@ public Response intercept(Chain chain) throws IOException {
return chain.proceed(originalRequest);
}
- Request compressedRequest =
- originalRequest
- .newBuilder()
- .header("Content-Encoding", "gzip")
- .method(
- originalRequest.method(),
- forceContentLength(gzip(originalRequest.body())))
- .build();
+ Request compressedRequest = originalRequest.newBuilder()
+ .header("Content-Encoding", "gzip")
+ .method(originalRequest.method(), forceContentLength(gzip(originalRequest.body())))
+ .build();
return chain.proceed(compressedRequest);
}
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..a8783d37b 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/JSON.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/JSON.java
@@ -6,13 +6,17 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
-import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.TypeAdapter;
import com.google.gson.internal.bind.util.ISO8601Utils;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
+import com.google.gson.JsonElement;
import io.gsonfire.GsonFireBuilder;
+import io.gsonfire.TypeSelector;
+
+import okio.ByteString;
+
import java.io.IOException;
import java.io.StringReader;
import java.lang.reflect.Type;
@@ -23,8 +27,9 @@
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
+import java.util.Locale;
import java.util.Map;
-import okio.ByteString;
+import java.util.HashMap;
/*
* A JSON utility class
@@ -37,42 +42,37 @@ public class JSON {
private static boolean isLenientOnJson = false;
private static DateTypeAdapter dateTypeAdapter = new DateTypeAdapter();
private static SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter();
- private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter =
- new OffsetDateTimeTypeAdapter();
+ private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter();
private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter();
private static ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter();
@SuppressWarnings("unchecked")
public static GsonBuilder createGson() {
- GsonFireBuilder fireBuilder = new GsonFireBuilder();
+ GsonFireBuilder fireBuilder = new GsonFireBuilder()
+ ;
GsonBuilder builder = fireBuilder.createGsonBuilder();
return builder;
}
- private static String getDiscriminatorValue(
- JsonElement readElement, String discriminatorField) {
+ private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
JsonElement element = readElement.getAsJsonObject().get(discriminatorField);
if (null == element) {
- throw new IllegalArgumentException(
- "missing discriminator field: <" + discriminatorField + ">");
+ throw new IllegalArgumentException("missing discriminator field: <" + discriminatorField + ">");
}
return element.getAsString();
}
/**
- * Returns the Java class that implements the OpenAPI schema for the specified discriminator
- * value.
+ * Returns the Java class that implements the OpenAPI schema for the specified discriminator value.
*
* @param classByDiscriminatorValue The map of discriminator values to Java classes.
* @param discriminatorValue The value of the OpenAPI discriminator in the input data.
* @return The Java class that implements the OpenAPI schema
*/
- private static Class getClassByDiscriminator(
- Map classByDiscriminatorValue, String discriminatorValue) {
+ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, String discriminatorValue) {
Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue);
if (null == clazz) {
- throw new IllegalArgumentException(
- "cannot determine model class of name: <" + discriminatorValue + ">");
+ throw new IllegalArgumentException("cannot determine model class of name: <" + discriminatorValue + ">");
}
return clazz;
}
@@ -84,729 +84,347 @@ private static Class getClassByDiscriminator(
gsonBuilder.registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter);
gsonBuilder.registerTypeAdapter(LocalDate.class, localDateTypeAdapter);
gsonBuilder.registerTypeAdapter(byte[].class, byteArrayAdapter);
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AIContext.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.APIKey.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.APIKeyInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AccessToken.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ActionConfig.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ActionConfigInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ActionConfigInputCreate
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ActionDetails.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ActionDetailsInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ActionDetailsInputCreate
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ActivateUserRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AgentConversation.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AnswerContent.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AnswerContextInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AnswerDataResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AssignChangeAuthorRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AssignTagRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AssociateMetadataInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AssociateMetadataInputCreate
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Authentication.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AuthenticationInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Author.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AuthorMetadataTypeInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.AuthorType.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.BasicAuth.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.BasicAuthInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CALLBACK.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CALLBACKInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CALLBACKInputMandatory.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CalendarResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ChangeUserPasswordRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Column.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ColumnSecurityRule.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ColumnSecurityRuleColumn
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ColumnSecurityRuleGroup
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ColumnSecurityRuleGroupOperation
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ColumnSecurityRuleResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ColumnSecurityRuleSourceTable
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ColumnSecurityRuleTableInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ColumnSecurityRuleUpdate
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CommitBranchRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CommitFileType.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CommitHistoryResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CommitResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CommiterType.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ConnectionConfigurationResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ConnectionConfigurationSearchRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ConnectionInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ContextPayloadV2Input.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Conversation.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ConversationSettingsInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ConvertWorksheetToModelRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CopyObjectRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateAgentConversationRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateCalendarRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateConfigRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateConnectionConfigurationRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateConnectionRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateConnectionResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateConversationRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateCustomActionRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateEmailCustomizationRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateEmailCustomizationResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateOrgRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateRoleRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateScheduleRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateTagRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateUserGroupRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateUserRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CreateVariableRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CronExpression.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CronExpressionInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.CustomActionMetadataTypeInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DataSource.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DataSourceContextInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DataWarehouseObjectInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DataWarehouseObjects.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Database.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DbtSearchResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DeactivateUserRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DefaultActionConfig.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DefaultActionConfigInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DefaultActionConfigInputCreate
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DefaultActionConfigSearchInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DeleteConfigRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DeleteConnectionConfigurationRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DeleteConnectionRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DeleteMetadataRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DeleteMetadataTypeInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DeleteOrgEmailCustomizationRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DeployCommitRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.DeployResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.EntityHeader.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ErrorResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.EurekaDataSourceSuggestionResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.EurekaDecomposeQueryResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.EurekaGetRelevantQuestionsResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.EurekaLLMDecomposeQueryResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.EurekaLLMSuggestedQuery
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.EurekaRelevantQuestion.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ExcludeMetadataListItemInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ExportAnswerReportRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ExportLiveboardReportRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ExportMetadataTMLBatchedRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ExportMetadataTMLRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ExportMetadataTypeInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ExportOptions.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ExternalTableInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FavoriteMetadataInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FavoriteMetadataItem.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FavoriteObjectOptionsInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FetchAnswerDataRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FetchAnswerSqlQueryRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FetchAsyncImportTaskStatusRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FetchColumnSecurityRulesRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FetchConnectionDiffStatusResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FetchLiveboardDataRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FetchLiveboardSqlQueryRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FetchLogsRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FetchPermissionsOfPrincipalsRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FetchPermissionsOnMetadataRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FilterRules.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ForceLogoutUsersRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Frequency.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.FrequencyInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GenerateCSVRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GenericInfo.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GetAsyncImportStatusResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GetCustomAccessTokenRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GetDataSourceSuggestionsRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GetFullAccessTokenRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GetObjectAccessTokenRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GetRelevantQuestionsRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GetTokenResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GroupObject.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.GroupsImportListInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.HeaderAttributeInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.HeaderUpdateInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ImportEPackAsyncTaskStatus
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ImportMetadataTMLAsyncRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ImportMetadataTMLRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ImportUser.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ImportUserGroupsRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ImportUserGroupsResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ImportUserType.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ImportUsersRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- 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(
- new com.thoughtspot.client.model.JWTParameter.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.JWTUserOptions.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.JWTUserOptionsFull.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.LBContextInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.LiveboardContent.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.LiveboardDataResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.LiveboardOptions.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.LiveboardOptionsInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.LogResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.LoginRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.MetadataAssociationItem
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.MetadataContext.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.MetadataInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.MetadataListItemInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.MetadataObject.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.MetadataResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.MetadataSearchResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.MetadataSearchSortOptions
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ModelTableList.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ObjectIDAndName.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Org.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.OrgInfo.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.OrgResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.OrgType.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ParameterValues.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ParameterizeMetadataRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ParametersListItem.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ParametersListItemInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PdfOptions.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PdfOptionsInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PermissionInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PermissionOfMetadataResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PermissionOfPrincipalsResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PermissionsMetadataTypeInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PngOptionsInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PrincipalsInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PrincipalsListItem.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PrincipalsListItemInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PublishMetadataListItem
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.PublishMetadataRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.QueryGetDecomposedQueryRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RecipientDetails.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RecipientDetailsInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RegionalSettingsInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RepoConfigObject.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResetUserPasswordRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseActivationURL.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseCopyObject.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseCustomAction.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseFailedEntities.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseFailedEntity.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseIncompleteEntities
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseIncompleteEntity
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseMessage.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponsePostUpgradeFailedEntities
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponsePostUpgradeFailedEntity
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseSchedule.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseScheduleRun.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseSuccessfulEntities
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseSuccessfulEntity
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ResponseWorksheetToModelConversion
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RevertCommitRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RevertResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RevertedMetadata.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RevokeTokenRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RiseGQLArgWrapper.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RiseSetter.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Role.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RoleResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RuntimeFilter.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RuntimeFilters.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RuntimeParamOverride.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RuntimeParameters.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RuntimeSort.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.RuntimeSorts.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ScheduleHistoryRunsOptionsInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SchedulesPdfOptionsInput
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SchemaObject.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Scope.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchCalendarsRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchCommitsRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchConfigRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchConnectionRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchConnectionResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchCustomActionsRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchDataRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchDataResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchEmailCustomizationRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchMetadataRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchOrgsRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchRoleResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchRolesRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchSchedulesRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchTagsRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchUserGroupsRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchUsersRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SearchVariablesRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SendAgentMessageResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SendAgentMessageStreamingRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SendMessageRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ShareMetadataRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ShareMetadataTypeInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SharePermissionsInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SingleAnswerRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SortOption.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SortOptionInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SortOptions.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SortingOptions.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SqlQuery.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SqlQueryResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SystemConfig.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SystemInfo.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.SystemOverrideInfo.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Table.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Tag.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.TagMetadataTypeInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.TemplatePropertiesInputCreate
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.Token.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.TokenAccessScopeObject.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.TokenValidationResponse
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.URL.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.URLInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.URLInputMandatory.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UnparameterizeMetadataRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UnpublishMetadataRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateCalendarRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateColumnSecurityRulesRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateConfigRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateConnectionConfigurationRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateConnectionRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateConnectionV2Request
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateCustomActionRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateEmailCustomizationRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateMetadataHeaderRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateMetadataObjIdRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateObjIdInput.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateOrgRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateRoleRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateScheduleRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateSystemConfigRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateTagRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateUserGroupRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateUserRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateVariableRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UpdateVariableValuesRequest
- .CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.User.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UserGroup.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UserGroupResponse.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UserInfo.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UserObject.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UserParameterOptions.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.UserPrincipal.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ValidateMergeRequest.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.ValidateTokenRequest.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.VariableValue.CustomTypeAdapterFactory());
- gsonBuilder.registerTypeAdapterFactory(
- new com.thoughtspot.client.model.VariableValueInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AIContext.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.APIKey.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.APIKeyInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AccessToken.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ActionConfig.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ActionConfigInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ActionConfigInputCreate.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ActionDetails.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ActionDetailsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ActionDetailsInputCreate.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ActivateUserRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AgentConversation.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AnswerContent.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AnswerContextInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AnswerDataResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AssignChangeAuthorRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AssignTagRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AssociateMetadataInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AssociateMetadataInputCreate.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Authentication.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AuthenticationInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Author.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AuthorMetadataTypeInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.AuthorType.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.BasicAuth.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.BasicAuthInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CALLBACK.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CALLBACKInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CALLBACKInputMandatory.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CalendarResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ChangeUserPasswordRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Column.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ColumnSecurityRule.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ColumnSecurityRuleColumn.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ColumnSecurityRuleGroup.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ColumnSecurityRuleGroupOperation.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ColumnSecurityRuleResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ColumnSecurityRuleSourceTable.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ColumnSecurityRuleTableInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ColumnSecurityRuleUpdate.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CommitBranchRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CommitFileType.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CommitHistoryResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(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());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ConnectionConfigurationSearchRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ConnectionInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ContextPayloadV2Input.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Conversation.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ConversationSettingsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ConvertWorksheetToModelRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CopyObjectRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateAgentConversationRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateCalendarRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateConfigRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateConnectionConfigurationRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateConnectionRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateConnectionResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateConversationRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateCustomActionRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateEmailCustomizationRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateEmailCustomizationResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateOrgRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateRoleRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateScheduleRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateTagRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CreateUserGroupRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(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(new com.thoughtspot.client.model.CronExpressionInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.CustomActionMetadataTypeInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DataSource.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DataSourceContextInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DataWarehouseObjectInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DataWarehouseObjects.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Database.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DbtSearchResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DeactivateUserRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DefaultActionConfig.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DefaultActionConfigInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DefaultActionConfigInputCreate.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DefaultActionConfigSearchInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DeleteConfigRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DeleteConnectionConfigurationRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DeleteConnectionRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DeleteMetadataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.DeleteMetadataTypeInput.CustomTypeAdapterFactory());
+ 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(new com.thoughtspot.client.model.DeployResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.EntityHeader.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ErrorResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.EurekaDataSourceSuggestionResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.EurekaDecomposeQueryResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.EurekaGetRelevantQuestionsResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.EurekaLLMDecomposeQueryResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.EurekaLLMSuggestedQuery.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());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ExportAnswerReportRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ExportLiveboardReportRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ExportMetadataTMLBatchedRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ExportMetadataTMLRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ExportMetadataTypeInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ExportOptions.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ExternalTableInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FavoriteMetadataInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FavoriteMetadataItem.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FavoriteObjectOptionsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FetchAnswerDataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FetchAnswerSqlQueryRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FetchAsyncImportTaskStatusRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FetchColumnSecurityRulesRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FetchConnectionDiffStatusResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FetchLiveboardDataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FetchLiveboardSqlQueryRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FetchLogsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FetchPermissionsOfPrincipalsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FetchPermissionsOnMetadataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FilterRules.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ForceLogoutUsersRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Frequency.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.FrequencyInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GenerateCSVRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GenericInfo.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GetAsyncImportStatusResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GetCustomAccessTokenRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GetDataSourceSuggestionsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GetFullAccessTokenRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GetObjectAccessTokenRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GetRelevantQuestionsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GetTokenResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GroupObject.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.GroupsImportListInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.HeaderAttributeInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.HeaderUpdateInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ImportEPackAsyncTaskStatus.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ImportMetadataTMLAsyncRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ImportMetadataTMLRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ImportUser.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ImportUserGroupsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ImportUserGroupsResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ImportUserType.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ImportUsersRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ImportUsersResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.InputEurekaNLSRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.JWTMetadataObject.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.JWTParameter.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.JWTUserOptions.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.JWTUserOptionsFull.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.LBContextInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.LiveboardContent.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.LiveboardDataResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.LiveboardOptions.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.LiveboardOptionsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.LogResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.LoginRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.MetadataAssociationItem.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.MetadataContext.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.MetadataInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.MetadataListItemInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.MetadataObject.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.MetadataResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.MetadataSearchResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.MetadataSearchSortOptions.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ModelTableList.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(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(new com.thoughtspot.client.model.OrgType.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ParameterValues.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ParameterizeMetadataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ParametersListItem.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ParametersListItemInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PdfOptions.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PdfOptionsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PermissionInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PermissionOfMetadataResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PermissionOfPrincipalsResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PermissionsMetadataTypeInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PngOptionsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PrincipalsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PrincipalsListItem.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PrincipalsListItemInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PublishMetadataListItem.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.PublishMetadataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.QueryGetDecomposedQueryRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RecipientDetails.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RecipientDetailsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RegionalSettingsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RepoConfigObject.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResetUserPasswordRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseActivationURL.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseCopyObject.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseCustomAction.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseFailedEntities.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseFailedEntity.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseIncompleteEntities.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseIncompleteEntity.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseMessage.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponsePostUpgradeFailedEntities.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponsePostUpgradeFailedEntity.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseSchedule.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseScheduleRun.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseSuccessfulEntities.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseSuccessfulEntity.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ResponseWorksheetToModelConversion.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RevertCommitRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RevertResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RevertedMetadata.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RevokeTokenRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RiseGQLArgWrapper.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RiseSetter.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Role.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RoleResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RuntimeFilter.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RuntimeFilters.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RuntimeParamOverride.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RuntimeParameters.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RuntimeSort.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.RuntimeSorts.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ScheduleHistoryRunsOptionsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SchedulesPdfOptionsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SchemaObject.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Scope.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(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(new com.thoughtspot.client.model.SearchConnectionRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchConnectionResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchCustomActionsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchDataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchDataResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchEmailCustomizationRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchMetadataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchOrgsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchRoleResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchRolesRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchSchedulesRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchTagsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SearchUserGroupsRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(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());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SendAgentMessageStreamingRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SendMessageRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ShareMetadataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.ShareMetadataTypeInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SharePermissionsInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SingleAnswerRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SortOption.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SortOptionInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SortOptions.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SortingOptions.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SqlQuery.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SqlQueryResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SystemConfig.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SystemInfo.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.SystemOverrideInfo.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Table.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Tag.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.TagMetadataTypeInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.TemplatePropertiesInputCreate.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.Token.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.TokenAccessScopeObject.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.TokenValidationResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.URL.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.URLInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.URLInputMandatory.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UnparameterizeMetadataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UnpublishMetadataRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateCalendarRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateColumnSecurityRulesRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateConfigRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateConnectionConfigurationRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateConnectionRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateConnectionV2Request.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateCustomActionRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateEmailCustomizationRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateMetadataHeaderRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateMetadataObjIdRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateObjIdInput.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateOrgRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateRoleRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateScheduleRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateSystemConfigRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateTagRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateUserGroupRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateUserRequest.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UpdateVariableRequest.CustomTypeAdapterFactory());
+ 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(new com.thoughtspot.client.model.UserGroup.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UserGroupResponse.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UserInfo.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UserObject.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UserParameterOptions.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(new com.thoughtspot.client.model.UserPrincipal.CustomTypeAdapterFactory());
+ gsonBuilder.registerTypeAdapterFactory(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.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();
}
@@ -845,8 +463,8 @@ public static String serialize(Object obj) {
/**
* Deserialize the given JSON string to Java object.
*
- * @param Type
- * @param body The JSON string
+ * @param Type
+ * @param body The JSON string
* @param returnType The type to deserialize into
* @return The deserialized Java object
*/
@@ -855,8 +473,7 @@ public static T deserialize(String body, Type returnType) {
try {
if (isLenientOnJson) {
JsonReader jsonReader = new JsonReader(new StringReader(body));
- // see
- // https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/stream/JsonReader.html#setLenient(boolean)
+ // see https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/stream/JsonReader.html#setLenient(boolean)
jsonReader.setLenient(true);
return gson.fromJson(jsonReader, returnType);
} else {
@@ -873,7 +490,9 @@ public static T deserialize(String body, Type returnType) {
}
}
- /** Gson TypeAdapter for Byte Array type */
+ /**
+ * Gson TypeAdapter for Byte Array type
+ */
public static class ByteArrayAdapter extends TypeAdapter {
@Override
@@ -899,7 +518,9 @@ public byte[] read(JsonReader in) throws IOException {
}
}
- /** Gson TypeAdapter for JSR310 OffsetDateTime type */
+ /**
+ * Gson TypeAdapter for JSR310 OffsetDateTime type
+ */
public static class OffsetDateTimeTypeAdapter extends TypeAdapter {
private DateTimeFormatter formatter;
@@ -934,14 +555,16 @@ public OffsetDateTime read(JsonReader in) throws IOException {
default:
String date = in.nextString();
if (date.endsWith("+0000")) {
- date = date.substring(0, date.length() - 5) + "Z";
+ date = date.substring(0, date.length()-5) + "Z";
}
return OffsetDateTime.parse(date, formatter);
}
}
}
- /** Gson TypeAdapter for JSR310 LocalDate type */
+ /**
+ * Gson TypeAdapter for JSR310 LocalDate type
+ */
public static class LocalDateTypeAdapter extends TypeAdapter {
private DateTimeFormatter formatter;
@@ -989,8 +612,9 @@ public static void setLocalDateFormat(DateTimeFormatter dateFormat) {
}
/**
- * Gson TypeAdapter for java.sql.Date type If the dateFormat is null, a simple "yyyy-MM-dd"
- * format will be used (more efficient than SimpleDateFormat).
+ * Gson TypeAdapter for java.sql.Date type
+ * If the dateFormat is null, a simple "yyyy-MM-dd" format will be used
+ * (more efficient than SimpleDateFormat).
*/
public static class SqlDateTypeAdapter extends TypeAdapter {
@@ -1033,8 +657,7 @@ public java.sql.Date read(JsonReader in) throws IOException {
if (dateFormat != null) {
return new java.sql.Date(dateFormat.parse(date).getTime());
}
- return new java.sql.Date(
- ISO8601Utils.parse(date, new ParsePosition(0)).getTime());
+ return new java.sql.Date(ISO8601Utils.parse(date, new ParsePosition(0)).getTime());
} catch (ParseException e) {
throw new JsonParseException(e);
}
@@ -1043,8 +666,8 @@ public java.sql.Date read(JsonReader in) throws IOException {
}
/**
- * Gson TypeAdapter for java.util.Date type If the dateFormat is null, ISO8601Utils will be
- * used.
+ * Gson TypeAdapter for java.util.Date type
+ * If the dateFormat is null, ISO8601Utils will be used.
*/
public static class DateTypeAdapter extends TypeAdapter {
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/Pair.java b/sdks/java/src/main/java/com/thoughtspot/client/Pair.java
index eea3e222d..37b28436b 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/Pair.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/Pair.java
@@ -4,14 +4,12 @@
package com.thoughtspot.client;
-@javax.annotation.Generated(
- value = "org.openapitools.codegen.languages.JavaClientCodegen",
- comments = "Generator version: 7.12.0")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0")
public class Pair {
private String name = "";
private String value = "";
- public Pair(String name, String value) {
+ public Pair (String name, String value) {
setName(name);
setValue(value);
}
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/ProgressRequestBody.java b/sdks/java/src/main/java/com/thoughtspot/client/ProgressRequestBody.java
index 53b13b80d..4c7c0f4df 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/ProgressRequestBody.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/ProgressRequestBody.java
@@ -4,9 +4,11 @@
package com.thoughtspot.client;
-import java.io.IOException;
import okhttp3.MediaType;
import okhttp3.RequestBody;
+
+import java.io.IOException;
+
import okio.Buffer;
import okio.BufferedSink;
import okio.ForwardingSink;
@@ -55,8 +57,7 @@ public void write(Buffer source, long byteCount) throws IOException {
}
bytesWritten += byteCount;
- callback.onUploadProgress(
- bytesWritten, contentLength, bytesWritten == contentLength);
+ callback.onUploadProgress(bytesWritten, contentLength, bytesWritten == contentLength);
}
};
}
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/ProgressResponseBody.java b/sdks/java/src/main/java/com/thoughtspot/client/ProgressResponseBody.java
index 970f9ac98..16e7ef698 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/ProgressResponseBody.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/ProgressResponseBody.java
@@ -4,9 +4,11 @@
package com.thoughtspot.client;
-import java.io.IOException;
import okhttp3.MediaType;
import okhttp3.ResponseBody;
+
+import java.io.IOException;
+
import okio.Buffer;
import okio.BufferedSource;
import okio.ForwardingSource;
@@ -51,8 +53,7 @@ public long read(Buffer sink, long byteCount) throws IOException {
long bytesRead = super.read(sink, byteCount);
// read() returns the number of bytes read, or -1 if this source is exhausted.
totalBytesRead += bytesRead != -1 ? bytesRead : 0;
- callback.onDownloadProgress(
- totalBytesRead, responseBody.contentLength(), bytesRead == -1);
+ callback.onDownloadProgress(totalBytesRead, responseBody.contentLength(), bytesRead == -1);
return bytesRead;
}
};
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/ServerConfiguration.java b/sdks/java/src/main/java/com/thoughtspot/client/ServerConfiguration.java
index d840ac1f8..a6c128224 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/ServerConfiguration.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/ServerConfiguration.java
@@ -6,10 +6,10 @@
import java.util.Map;
-/** Representing a Server configuration. */
-@javax.annotation.Generated(
- value = "org.openapitools.codegen.languages.JavaClientCodegen",
- comments = "Generator version: 7.12.0")
+/**
+ * Representing a Server configuration.
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0")
public class ServerConfiguration {
public String URL;
public String description;
@@ -18,11 +18,9 @@ public class ServerConfiguration {
/**
* @param URL A URL to the target host.
* @param description A description of the host designated by the URL.
- * @param variables A map between a variable name and its value. The value is used for
- * substitution in the server's URL template.
+ * @param variables A map between a variable name and its value. The value is used for substitution in the server's URL template.
*/
- public ServerConfiguration(
- String URL, String description, Map variables) {
+ public ServerConfiguration(String URL, String description, Map variables) {
this.URL = URL;
this.description = description;
this.variables = variables;
@@ -38,21 +36,15 @@ public String URL(Map variables) {
String url = this.URL;
// go through variables and replace placeholders
- for (Map.Entry variable : this.variables.entrySet()) {
+ for (Map.Entry variable: this.variables.entrySet()) {
String name = variable.getKey();
ServerVariable serverVariable = variable.getValue();
String value = serverVariable.defaultValue;
if (variables != null && variables.containsKey(name)) {
value = variables.get(name);
- if (serverVariable.enumValues.size() > 0
- && !serverVariable.enumValues.contains(value)) {
- throw new IllegalArgumentException(
- "The variable "
- + name
- + " in the server URL has invalid value "
- + value
- + ".");
+ if (serverVariable.enumValues.size() > 0 && !serverVariable.enumValues.contains(value)) {
+ throw new IllegalArgumentException("The variable " + name + " in the server URL has invalid value " + value + ".");
}
}
url = url.replace("{" + name + "}", value);
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/ServerVariable.java b/sdks/java/src/main/java/com/thoughtspot/client/ServerVariable.java
index bd78a124f..215e48c70 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/ServerVariable.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/ServerVariable.java
@@ -6,10 +6,10 @@
import java.util.HashSet;
-/** Representing a Server Variable for server URL template substitution. */
-@javax.annotation.Generated(
- value = "org.openapitools.codegen.languages.JavaClientCodegen",
- comments = "Generator version: 7.12.0")
+/**
+ * Representing a Server Variable for server URL template substitution.
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0")
public class ServerVariable {
public String description;
public String defaultValue;
@@ -18,8 +18,7 @@ public class ServerVariable {
/**
* @param description A description for the server variable.
* @param defaultValue The default value to use for substitution.
- * @param enumValues An enumeration of string values to be used if the substitution options are
- * from a limited set.
+ * @param enumValues An enumeration of string values to be used if the substitution options are from a limited set.
*/
public ServerVariable(String description, String defaultValue, HashSet enumValues) {
this.description = description;
diff --git a/sdks/java/src/main/java/com/thoughtspot/client/StringUtil.java b/sdks/java/src/main/java/com/thoughtspot/client/StringUtil.java
index e5b8997a5..5bf56e5b8 100644
--- a/sdks/java/src/main/java/com/thoughtspot/client/StringUtil.java
+++ b/sdks/java/src/main/java/com/thoughtspot/client/StringUtil.java
@@ -7,69 +7,68 @@
import java.util.Collection;
import java.util.Iterator;
-@javax.annotation.Generated(
- value = "org.openapitools.codegen.languages.JavaClientCodegen",
- comments = "Generator version: 7.12.0")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0")
public class StringUtil {
- /**
- * Check if the given array contains the given value (with case-insensitive comparison).
- *
- * @param array The array
- * @param value The value to search
- * @return true if the array contains the value
- */
- public static boolean containsIgnoreCase(String[] array, String value) {
- for (String str : array) {
- if (value == null && str == null) {
- return true;
- }
- if (value != null && value.equalsIgnoreCase(str)) {
- return true;
- }
- }
- return false;
+ /**
+ * Check if the given array contains the given value (with case-insensitive comparison).
+ *
+ * @param array The array
+ * @param value The value to search
+ * @return true if the array contains the value
+ */
+ public static boolean containsIgnoreCase(String[] array, String value) {
+ for (String str : array) {
+ if (value == null && str == null) {
+ return true;
+ }
+ if (value != null && value.equalsIgnoreCase(str)) {
+ return true;
+ }
}
+ return false;
+ }
- /**
- * Join an array of strings with the given separator.
- *
- *
Note: This might be replaced by utility method from commons-lang or guava someday if one
- * of those libraries is added as dependency.
- *
- * @param array The array of strings
- * @param separator The separator
- * @return the resulting string
- */
- public static String join(String[] array, String separator) {
- int len = array.length;
- if (len == 0) {
- return "";
- }
+ /**
+ * Join an array of strings with the given separator.
+ *
+ * Note: This might be replaced by utility method from commons-lang or guava someday
+ * if one of those libraries is added as dependency.
+ *
+ *
+ * @param array The array of strings
+ * @param separator The separator
+ * @return the resulting string
+ */
+ public static String join(String[] array, String separator) {
+ int len = array.length;
+ if (len == 0) {
+ return "";
+ }
- StringBuilder out = new StringBuilder();
- out.append(array[0]);
- for (int i = 1; i < len; i++) {
- out.append(separator).append(array[i]);
- }
- return out.toString();
+ StringBuilder out = new StringBuilder();
+ out.append(array[0]);
+ for (int i = 1; i < len; i++) {
+ out.append(separator).append(array[i]);
}
+ return out.toString();
+ }
- /**
- * Join a list of strings with the given separator.
- *
- * @param list The list of strings
- * @param separator The separator
- * @return the resulting string
- */
- public static String join(Collection list, String separator) {
- Iterator iterator = list.iterator();
- StringBuilder out = new StringBuilder();
- if (iterator.hasNext()) {
- out.append(iterator.next());
- }
- while (iterator.hasNext()) {
- out.append(separator).append(iterator.next());
- }
- return out.toString();
+ /**
+ * Join a list of strings with the given separator.
+ *
+ * @param list The list of strings
+ * @param separator The separator
+ * @return the resulting string
+ */
+ public static String join(Collection list, String separator) {
+ Iterator iterator = list.iterator();
+ StringBuilder out = new StringBuilder();
+ if (iterator.hasNext()) {
+ out.append(iterator.next());
+ }
+ while (iterator.hasNext()) {
+ out.append(separator).append(iterator.next());
}
+ return out.toString();
+ }
}
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..54e15586b 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
@@ -4,7 +4,6 @@
package com.thoughtspot.client.api;
-import com.google.gson.reflect.TypeToken;
import com.thoughtspot.client.ApiCallback;
import com.thoughtspot.client.ApiClient;
import com.thoughtspot.client.ApiClientConfiguration;
@@ -12,10 +11,19 @@
import com.thoughtspot.client.ApiResponse;
import com.thoughtspot.client.Configuration;
import com.thoughtspot.client.Pair;
+import com.thoughtspot.client.ProgressRequestBody;
+import com.thoughtspot.client.ProgressResponseBody;
+
+import com.google.gson.reflect.TypeToken;
+
+import java.io.IOException;
+
+
import com.thoughtspot.client.model.AgentConversation;
import com.thoughtspot.client.model.Conversation;
import com.thoughtspot.client.model.CreateAgentConversationRequest;
import com.thoughtspot.client.model.CreateConversationRequest;
+import com.thoughtspot.client.model.ErrorResponse;
import com.thoughtspot.client.model.EurekaDataSourceSuggestionResponse;
import com.thoughtspot.client.model.EurekaDecomposeQueryResponse;
import com.thoughtspot.client.model.EurekaGetRelevantQuestionsResponse;
@@ -23,19 +31,19 @@
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;
import com.thoughtspot.client.model.SingleAnswerRequest;
+
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-@javax.annotation.Generated(
- value = "org.openapitools.codegen.languages.JavaClientCodegen",
- comments = "Generator version: 7.12.0")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0")
public class AiApi {
private ApiClient localVarApiClient;
private ApiClientConfiguration localVarApiClientConfiguration;
@@ -94,33 +102,29 @@ public void setCustomBaseUrl(String customBaseUrl) {
/**
* Build call for createAgentConversation
- *
- * @param createAgentConversationRequest (required)
+ * @param createAgentConversationRequest (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
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public okhttp3.Call createAgentConversationCall(
- CreateAgentConversationRequest createAgentConversationRequest,
- final ApiCallback _callback)
- throws ApiException {
+ public okhttp3.Call createAgentConversationCall(CreateAgentConversationRequest createAgentConversationRequest, final ApiCallback _callback) throws ApiException {
String basePath = null;
// Operation Servers
- String[] localBasePaths = new String[] {};
+ String[] localBasePaths = new String[] { };
// Determine Base Path to Use
- if (localCustomBaseUrl != null) {
+ if (localCustomBaseUrl != null){
basePath = localCustomBaseUrl;
- } else if (localBasePaths.length > 0) {
+ } else if ( localBasePaths.length > 0 ) {
basePath = localBasePaths[localHostIndex];
} else {
basePath = null;
@@ -137,156 +141,129 @@ public okhttp3.Call createAgentConversationCall(
Map localVarCookieParams = new HashMap();
Map localVarFormParams = new HashMap();
- final String[] localVarAccepts = {"application/json"};
+ 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);
+ 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);
+ String[] localVarAuthNames = new String[] { "bearerAuth" };
+ return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@SuppressWarnings("rawtypes")
- private okhttp3.Call createAgentConversationValidateBeforeCall(
- CreateAgentConversationRequest createAgentConversationRequest,
- final ApiCallback _callback)
- throws ApiException {
+ private okhttp3.Call createAgentConversationValidateBeforeCall(CreateAgentConversationRequest createAgentConversationRequest, final ApiCallback _callback) throws ApiException {
// verify the required parameter 'createAgentConversationRequest' is set
if (createAgentConversationRequest == null) {
- throw new ApiException(
- "Missing the required parameter 'createAgentConversationRequest' when calling"
- + " createAgentConversation(Async)");
+ throw new ApiException("Missing the required parameter 'createAgentConversationRequest' when calling createAgentConversation(Async)");
}
return createAgentConversationCall(createAgentConversationRequest, _callback);
+
}
/**
- * Version: 10.13.0.cl or later
- *
- * @param createAgentConversationRequest (required)
+ *
+ * Version: 10.13.0.cl or later
+ * @param createAgentConversationRequest (required)
* @return AgentConversation
- * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
- * response body
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
- *
- *
Response Details
- *
Status Code
Description
Response Headers
- *
200
Common successful response
-
- *
201
Common error response
-
- *
400
Operation failed
-
- *
500
Operation failed
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public AgentConversation createAgentConversation(
- CreateAgentConversationRequest createAgentConversationRequest) throws ApiException {
- ApiResponse localVarResp =
- createAgentConversationWithHttpInfo(createAgentConversationRequest);
+ public AgentConversation createAgentConversation(CreateAgentConversationRequest createAgentConversationRequest) throws ApiException {
+ ApiResponse localVarResp = createAgentConversationWithHttpInfo(createAgentConversationRequest);
return localVarResp.getData();
}
/**
- * Version: 10.13.0.cl or later
- *
- * @param createAgentConversationRequest (required)
+ *
+ * Version: 10.13.0.cl or later
+ * @param createAgentConversationRequest (required)
* @return ApiResponse<AgentConversation>
- * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
- * response body
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
- *
- *
Response Details
- *
Status Code
Description
Response Headers
- *
200
Common successful response
-
- *
201
Common error response
-
- *
400
Operation failed
-
- *
500
Operation failed
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public ApiResponse createAgentConversationWithHttpInfo(
- CreateAgentConversationRequest createAgentConversationRequest) throws ApiException {
- okhttp3.Call localVarCall =
- createAgentConversationValidateBeforeCall(createAgentConversationRequest, null);
- Type localVarReturnType = new TypeToken() {}.getType();
+ public ApiResponse createAgentConversationWithHttpInfo(CreateAgentConversationRequest createAgentConversationRequest) throws ApiException {
+ okhttp3.Call localVarCall = createAgentConversationValidateBeforeCall(createAgentConversationRequest, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
return localVarApiClient.execute(localVarCall, localVarReturnType);
}
/**
- * (asynchronously) Version: 10.13.0.cl or later
- *
- * @param createAgentConversationRequest (required)
+ * (asynchronously)
+ * Version: 10.13.0.cl or later
+ * @param createAgentConversationRequest (required)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
- * @throws ApiException If fail to process the API call, e.g. serializing the request body
- * object
+ * @throws ApiException If fail to process the API call, e.g. serializing 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
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public okhttp3.Call createAgentConversationAsync(
- CreateAgentConversationRequest createAgentConversationRequest,
- final ApiCallback _callback)
- throws ApiException {
-
- okhttp3.Call localVarCall =
- createAgentConversationValidateBeforeCall(
- createAgentConversationRequest, _callback);
- Type localVarReturnType = new TypeToken() {}.getType();
+ public okhttp3.Call createAgentConversationAsync(CreateAgentConversationRequest createAgentConversationRequest, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = createAgentConversationValidateBeforeCall(createAgentConversationRequest, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
/**
* Build call for createConversation
- *
- * @param createConversationRequest (required)
+ * @param createConversationRequest (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
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public okhttp3.Call createConversationCall(
- CreateConversationRequest createConversationRequest, final ApiCallback _callback)
- throws ApiException {
+ public okhttp3.Call createConversationCall(CreateConversationRequest createConversationRequest, final ApiCallback _callback) throws ApiException {
String basePath = null;
// Operation Servers
- String[] localBasePaths = new String[] {};
+ String[] localBasePaths = new String[] { };
// Determine Base Path to Use
- if (localCustomBaseUrl != null) {
+ if (localCustomBaseUrl != null){
basePath = localCustomBaseUrl;
- } else if (localBasePaths.length > 0) {
+ } else if ( localBasePaths.length > 0 ) {
basePath = localBasePaths[localHostIndex];
} else {
basePath = null;
@@ -303,182 +280,129 @@ public okhttp3.Call createConversationCall(
Map localVarCookieParams = new HashMap();
Map localVarFormParams = new HashMap();
- final String[] localVarAccepts = {"application/json"};
+ 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);
+ 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);
+ String[] localVarAuthNames = new String[] { "bearerAuth" };
+ return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@SuppressWarnings("rawtypes")
- private okhttp3.Call createConversationValidateBeforeCall(
- CreateConversationRequest createConversationRequest, final ApiCallback _callback)
- throws ApiException {
+ private okhttp3.Call createConversationValidateBeforeCall(CreateConversationRequest createConversationRequest, final ApiCallback _callback) throws ApiException {
// verify the required parameter 'createConversationRequest' is set
if (createConversationRequest == null) {
- throw new ApiException(
- "Missing the required parameter 'createConversationRequest' when calling"
- + " createConversation(Async)");
+ throw new ApiException("Missing the required parameter 'createConversationRequest' when calling createConversation(Async)");
}
return createConversationCall(createConversationRequest, _callback);
+
}
/**
- * Version: 10.4.0.cl or later Creates a Conversation object to start an AI-driven conversation
- * based on a specific data model. Requires at least view access to the metadata object
- * specified in the request. #### Usage guidelines This API requires the
- * `metadata_identifier` parameter to define the context for the conversation. You can
- * also specify the tokens to initiate the conversation as shown in this example:
- * `\"tokens\": \"[tea],[sales],[type]\"` If the API request is
- * successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This
- * endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made
- * Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot
- * support to enable Spotter on your cluster.
- *
- * @param createConversationRequest (required)
+ *
+ * Version: 10.4.0.cl or later Creates a Conversation object to start an AI-driven conversation based on a specific data model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines This API requires the `metadata_identifier` parameter to define the context for the conversation. You can also specify the tokens to initiate the conversation as shown in this example: `\"tokens\": \"[tea],[sales],[type]\"` If the API request is successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ * @param createConversationRequest (required)
* @return Conversation
- * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
- * response body
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
- *
- *
Response Details
- *
Status Code
Description
Response Headers
- *
200
Common successful response
-
- *
201
Common error response
-
- *
400
Operation failed
-
- *
500
Operation failed
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public Conversation createConversation(CreateConversationRequest createConversationRequest)
- throws ApiException {
- ApiResponse localVarResp =
- createConversationWithHttpInfo(createConversationRequest);
+ public Conversation createConversation(CreateConversationRequest createConversationRequest) throws ApiException {
+ ApiResponse localVarResp = createConversationWithHttpInfo(createConversationRequest);
return localVarResp.getData();
}
/**
- * Version: 10.4.0.cl or later Creates a Conversation object to start an AI-driven conversation
- * based on a specific data model. Requires at least view access to the metadata object
- * specified in the request. #### Usage guidelines This API requires the
- * `metadata_identifier` parameter to define the context for the conversation. You can
- * also specify the tokens to initiate the conversation as shown in this example:
- * `\"tokens\": \"[tea],[sales],[type]\"` If the API request is
- * successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This
- * endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made
- * Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot
- * support to enable Spotter on your cluster.
- *
- * @param createConversationRequest (required)
+ *
+ * Version: 10.4.0.cl or later Creates a Conversation object to start an AI-driven conversation based on a specific data model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines This API requires the `metadata_identifier` parameter to define the context for the conversation. You can also specify the tokens to initiate the conversation as shown in this example: `\"tokens\": \"[tea],[sales],[type]\"` If the API request is successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ * @param createConversationRequest (required)
* @return ApiResponse<Conversation>
- * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
- * response body
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
- *
- *
Response Details
- *
Status Code
Description
Response Headers
- *
200
Common successful response
-
- *
201
Common error response
-
- *
400
Operation failed
-
- *
500
Operation failed
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public ApiResponse createConversationWithHttpInfo(
- CreateConversationRequest createConversationRequest) throws ApiException {
- okhttp3.Call localVarCall =
- createConversationValidateBeforeCall(createConversationRequest, null);
- Type localVarReturnType = new TypeToken() {}.getType();
+ public ApiResponse createConversationWithHttpInfo(CreateConversationRequest createConversationRequest) throws ApiException {
+ okhttp3.Call localVarCall = createConversationValidateBeforeCall(createConversationRequest, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
return localVarApiClient.execute(localVarCall, localVarReturnType);
}
/**
- * (asynchronously) Version: 10.4.0.cl or later Creates a Conversation object to start an
- * AI-driven conversation based on a specific data model. Requires at least view access to the
- * metadata object specified in the request. #### Usage guidelines This API requires the
- * `metadata_identifier` parameter to define the context for the conversation. You can
- * also specify the tokens to initiate the conversation as shown in this example:
- * `\"tokens\": \"[tea],[sales],[type]\"` If the API request is
- * successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This
- * 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 createConversationRequest (required)
+ * (asynchronously)
+ * Version: 10.4.0.cl or later Creates a Conversation object to start an AI-driven conversation based on a specific data model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines This API requires the `metadata_identifier` parameter to define the context for the conversation. You can also specify the tokens to initiate the conversation as shown in this example: `\"tokens\": \"[tea],[sales],[type]\"` If the API request is successful, ThoughtSpot returns the ID of the conversation. > ###### Note: > * This 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 createConversationRequest (required)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
- * @throws ApiException If fail to process the API call, e.g. serializing the request body
- * object
+ * @throws ApiException If fail to process the API call, e.g. serializing 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
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public okhttp3.Call createConversationAsync(
- CreateConversationRequest createConversationRequest,
- final ApiCallback _callback)
- throws ApiException {
-
- okhttp3.Call localVarCall =
- createConversationValidateBeforeCall(createConversationRequest, _callback);
- Type localVarReturnType = new TypeToken() {}.getType();
+ public okhttp3.Call createConversationAsync(CreateConversationRequest createConversationRequest, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = createConversationValidateBeforeCall(createConversationRequest, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
/**
* Build call for getDataSourceSuggestions
- *
- * @param getDataSourceSuggestionsRequest (required)
+ * @param getDataSourceSuggestionsRequest (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
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public okhttp3.Call getDataSourceSuggestionsCall(
- GetDataSourceSuggestionsRequest getDataSourceSuggestionsRequest,
- final ApiCallback _callback)
- throws ApiException {
+ public okhttp3.Call getDataSourceSuggestionsCall(GetDataSourceSuggestionsRequest getDataSourceSuggestionsRequest, final ApiCallback _callback) throws ApiException {
String basePath = null;
// Operation Servers
- String[] localBasePaths = new String[] {};
+ String[] localBasePaths = new String[] { };
// Determine Base Path to Use
- if (localCustomBaseUrl != null) {
+ if (localCustomBaseUrl != null){
basePath = localCustomBaseUrl;
- } else if (localBasePaths.length > 0) {
+ } else if ( localBasePaths.length > 0 ) {
basePath = localBasePaths[localHostIndex];
} else {
basePath = null;
@@ -495,192 +419,129 @@ public okhttp3.Call getDataSourceSuggestionsCall(
Map localVarCookieParams = new HashMap();
Map localVarFormParams = new HashMap();
- final String[] localVarAccepts = {"application/json"};
+ 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);
+ 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);
+ String[] localVarAuthNames = new String[] { "bearerAuth" };
+ return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@SuppressWarnings("rawtypes")
- private okhttp3.Call getDataSourceSuggestionsValidateBeforeCall(
- GetDataSourceSuggestionsRequest getDataSourceSuggestionsRequest,
- final ApiCallback _callback)
- throws ApiException {
+ private okhttp3.Call getDataSourceSuggestionsValidateBeforeCall(GetDataSourceSuggestionsRequest getDataSourceSuggestionsRequest, final ApiCallback _callback) throws ApiException {
// verify the required parameter 'getDataSourceSuggestionsRequest' is set
if (getDataSourceSuggestionsRequest == null) {
- throw new ApiException(
- "Missing the required parameter 'getDataSourceSuggestionsRequest' when calling"
- + " getDataSourceSuggestions(Async)");
+ throw new ApiException("Missing the required parameter 'getDataSourceSuggestionsRequest' when calling getDataSourceSuggestions(Async)");
}
return getDataSourceSuggestionsCall(getDataSourceSuggestionsRequest, _callback);
+
}
/**
- * Version: 10.13.0.cl or later Provides relevant data source recommendations for a
- * user-submitted natural language query. To use this API, the user must have at least
- * view-level access to the underlying metadata entities referenced in the response. #### Usage
- * guidelines The request must include a `query` string via the request body. The
- * returned results include metadata such as: - `confidence`: a float indicating the
- * model's confidence in the relevance of each recommendation - `details`:
- * includes `data_source_identifier`, `data_source_name`, and
- * `description` of each recommended data source - `reasoning`: rationale
- * provided by the LLM to explain why each data source was recommended If the API request is
- * successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant
- * reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may
- * be introduced before it is made Generally Available. > * This endpoint requires Spotter —
- * please contact ThoughtSpot Support to enable Spotter on your cluster.
- *
- * @param getDataSourceSuggestionsRequest (required)
+ *
+ * Version: 10.13.0.cl or later Provides relevant data source recommendations for a user-submitted natural language query. To use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response. #### Usage guidelines The request must include a `query` string via the request body. The returned results include metadata such as: - `confidence`: a float indicating the model's confidence in the relevance of each recommendation - `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source - `reasoning`: rationale provided by the LLM to explain why each data source was recommended If the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
+ * @param getDataSourceSuggestionsRequest (required)
* @return EurekaDataSourceSuggestionResponse
- * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
- * response body
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
- *
- *
Response Details
- *
Status Code
Description
Response Headers
- *
200
Common successful response
-
- *
201
Common error response
-
- *
400
Operation failed
-
- *
500
Operation failed
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public EurekaDataSourceSuggestionResponse getDataSourceSuggestions(
- GetDataSourceSuggestionsRequest getDataSourceSuggestionsRequest) throws ApiException {
- ApiResponse localVarResp =
- getDataSourceSuggestionsWithHttpInfo(getDataSourceSuggestionsRequest);
+ public EurekaDataSourceSuggestionResponse getDataSourceSuggestions(GetDataSourceSuggestionsRequest getDataSourceSuggestionsRequest) throws ApiException {
+ ApiResponse localVarResp = getDataSourceSuggestionsWithHttpInfo(getDataSourceSuggestionsRequest);
return localVarResp.getData();
}
/**
- * Version: 10.13.0.cl or later Provides relevant data source recommendations for a
- * user-submitted natural language query. To use this API, the user must have at least
- * view-level access to the underlying metadata entities referenced in the response. #### Usage
- * guidelines The request must include a `query` string via the request body. The
- * returned results include metadata such as: - `confidence`: a float indicating the
- * model's confidence in the relevance of each recommendation - `details`:
- * includes `data_source_identifier`, `data_source_name`, and
- * `description` of each recommended data source - `reasoning`: rationale
- * provided by the LLM to explain why each data source was recommended If the API request is
- * successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant
- * reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may
- * be introduced before it is made Generally Available. > * This endpoint requires Spotter —
- * please contact ThoughtSpot Support to enable Spotter on your cluster.
- *
- * @param getDataSourceSuggestionsRequest (required)
+ *
+ * Version: 10.13.0.cl or later Provides relevant data source recommendations for a user-submitted natural language query. To use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response. #### Usage guidelines The request must include a `query` string via the request body. The returned results include metadata such as: - `confidence`: a float indicating the model's confidence in the relevance of each recommendation - `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source - `reasoning`: rationale provided by the LLM to explain why each data source was recommended If the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
+ * @param getDataSourceSuggestionsRequest (required)
* @return ApiResponse<EurekaDataSourceSuggestionResponse>
- * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
- * response body
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
- *
- *
Response Details
- *
Status Code
Description
Response Headers
- *
200
Common successful response
-
- *
201
Common error response
-
- *
400
Operation failed
-
- *
500
Operation failed
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public ApiResponse getDataSourceSuggestionsWithHttpInfo(
- GetDataSourceSuggestionsRequest getDataSourceSuggestionsRequest) throws ApiException {
- okhttp3.Call localVarCall =
- getDataSourceSuggestionsValidateBeforeCall(getDataSourceSuggestionsRequest, null);
- Type localVarReturnType = new TypeToken() {}.getType();
+ public ApiResponse getDataSourceSuggestionsWithHttpInfo(GetDataSourceSuggestionsRequest getDataSourceSuggestionsRequest) throws ApiException {
+ okhttp3.Call localVarCall = getDataSourceSuggestionsValidateBeforeCall(getDataSourceSuggestionsRequest, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
return localVarApiClient.execute(localVarCall, localVarReturnType);
}
/**
- * (asynchronously) Version: 10.13.0.cl or later Provides relevant data source recommendations
- * for a user-submitted natural language query. To use this API, the user must have at least
- * view-level access to the underlying metadata entities referenced in the response. #### Usage
- * guidelines The request must include a `query` string via the request body. The
- * returned results include metadata such as: - `confidence`: a float indicating the
- * model's confidence in the relevance of each recommendation - `details`:
- * includes `data_source_identifier`, `data_source_name`, and
- * `description` of each recommended data source - `reasoning`: rationale
- * provided by the LLM to explain why each data source was recommended If the API request is
- * successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant
- * reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may
- * be introduced before it is made Generally Available. > * This endpoint requires Spotter —
- * please contact ThoughtSpot Support to enable Spotter on your cluster.
- *
- * @param getDataSourceSuggestionsRequest (required)
+ * (asynchronously)
+ * Version: 10.13.0.cl or later Provides relevant data source recommendations for a user-submitted natural language query. To use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response. #### Usage guidelines The request must include a `query` string via the request body. The returned results include metadata such as: - `confidence`: a float indicating the model's confidence in the relevance of each recommendation - `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source - `reasoning`: rationale provided by the LLM to explain why each data source was recommended If the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
+ * @param getDataSourceSuggestionsRequest (required)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
- * @throws ApiException If fail to process the API call, e.g. serializing the request body
- * object
+ * @throws ApiException If fail to process the API call, e.g. serializing 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
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public okhttp3.Call getDataSourceSuggestionsAsync(
- GetDataSourceSuggestionsRequest getDataSourceSuggestionsRequest,
- final ApiCallback _callback)
- throws ApiException {
-
- okhttp3.Call localVarCall =
- getDataSourceSuggestionsValidateBeforeCall(
- getDataSourceSuggestionsRequest, _callback);
- Type localVarReturnType = new TypeToken() {}.getType();
+ public okhttp3.Call getDataSourceSuggestionsAsync(GetDataSourceSuggestionsRequest getDataSourceSuggestionsRequest, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = getDataSourceSuggestionsValidateBeforeCall(getDataSourceSuggestionsRequest, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
/**
* Build call for getRelevantQuestions
- *
- * @param getRelevantQuestionsRequest (required)
+ * @param getRelevantQuestionsRequest (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
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public okhttp3.Call getRelevantQuestionsCall(
- GetRelevantQuestionsRequest getRelevantQuestionsRequest, final ApiCallback _callback)
- throws ApiException {
+ public okhttp3.Call getRelevantQuestionsCall(GetRelevantQuestionsRequest getRelevantQuestionsRequest, final ApiCallback _callback) throws ApiException {
String basePath = null;
// Operation Servers
- String[] localBasePaths = new String[] {};
+ String[] localBasePaths = new String[] { };
// Determine Base Path to Use
- if (localCustomBaseUrl != null) {
+ if (localCustomBaseUrl != null){
basePath = localCustomBaseUrl;
- } else if (localBasePaths.length > 0) {
+ } else if ( localBasePaths.length > 0 ) {
basePath = localBasePaths[localHostIndex];
} else {
basePath = null;
@@ -697,215 +558,131 @@ public okhttp3.Call getRelevantQuestionsCall(
Map localVarCookieParams = new HashMap();
Map localVarFormParams = new HashMap();
- final String[] localVarAccepts = {"application/json"};
+ 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);
+ 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);
+ String[] localVarAuthNames = new String[] { "bearerAuth" };
+ return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@SuppressWarnings("rawtypes")
- private okhttp3.Call getRelevantQuestionsValidateBeforeCall(
- GetRelevantQuestionsRequest getRelevantQuestionsRequest, final ApiCallback _callback)
- throws ApiException {
+ private okhttp3.Call getRelevantQuestionsValidateBeforeCall(GetRelevantQuestionsRequest getRelevantQuestionsRequest, final ApiCallback _callback) throws ApiException {
// verify the required parameter 'getRelevantQuestionsRequest' is set
if (getRelevantQuestionsRequest == null) {
- throw new ApiException(
- "Missing the required parameter 'getRelevantQuestionsRequest' when calling"
- + " getRelevantQuestions(Async)");
+ throw new ApiException("Missing the required parameter 'getRelevantQuestionsRequest' when calling getRelevantQuestions(Async)");
}
return getRelevantQuestionsCall(getRelevantQuestionsRequest, _callback);
+
}
/**
- * Version: 10.13.0.cl or later Breaks down a user-submitted query into a series of analytical
- * sub-questions using relevant contextual metadata. To use this API, the user must have at
- * least view-level access to the referenced metadata objects. #### Usage guidelines To
- * accurately generate relevant questions, the request must include at least one of the
- * following metadata identifiers within `metadata_context` :
- * `conversation_identifier`, `answer_identifiers`,
- * `liveboard_identifiers`, or `data_source_identifiers`. You can further
- * enhance the quality and precision of breakdown by providing additional `ai_context`
- * such as: - `content`: User provided content like text data, csv data as a string
- * message to provide context & potentially improve the quality of the response. -
- * `instructions`: User specific text instructions sent to AI system for processing
- * the query. Additional optional parameters include: - `limit_relevant_questions`:
- * Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. -
- * `bypass_cache`: If set to true, forces fresh computation instead of returning
- * cached results. If the API request is successful, ThoughtSpot returns a list of relevant
- * analytical queries, each aligned with the user's original question. Each returned
- * question includes the query string, along with the identifier and name of the corresponding
- * data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes
- * may be introduced before the endpoint is made Generally Available. > * This endpoint
- * requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
- *
- * @param getRelevantQuestionsRequest (required)
+ *
+ * Version: 10.13.0.cl or later Breaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata. To use this API, the user must have at least view-level access to the referenced metadata objects. #### Usage guidelines To accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`. You can further enhance the quality and precision of breakdown by providing additional `ai_context` such as: - `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. - `instructions`: User specific text instructions sent to AI system for processing the query. Additional optional parameters include: - `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. - `bypass_cache`: If set to true, forces fresh computation instead of returning cached results. If the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ * @param getRelevantQuestionsRequest (required)
* @return EurekaGetRelevantQuestionsResponse
- * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
- * response body
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
- *
- *
Response Details
- *
Status Code
Description
Response Headers
- *
200
Common successful response
-
- *
201
Common error response
-
- *
400
Operation failed
-
- *
500
Operation failed
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public EurekaGetRelevantQuestionsResponse getRelevantQuestions(
- GetRelevantQuestionsRequest getRelevantQuestionsRequest) throws ApiException {
- ApiResponse localVarResp =
- getRelevantQuestionsWithHttpInfo(getRelevantQuestionsRequest);
+ public EurekaGetRelevantQuestionsResponse getRelevantQuestions(GetRelevantQuestionsRequest getRelevantQuestionsRequest) throws ApiException {
+ ApiResponse localVarResp = getRelevantQuestionsWithHttpInfo(getRelevantQuestionsRequest);
return localVarResp.getData();
}
/**
- * Version: 10.13.0.cl or later Breaks down a user-submitted query into a series of analytical
- * sub-questions using relevant contextual metadata. To use this API, the user must have at
- * least view-level access to the referenced metadata objects. #### Usage guidelines To
- * accurately generate relevant questions, the request must include at least one of the
- * following metadata identifiers within `metadata_context` :
- * `conversation_identifier`, `answer_identifiers`,
- * `liveboard_identifiers`, or `data_source_identifiers`. You can further
- * enhance the quality and precision of breakdown by providing additional `ai_context`
- * such as: - `content`: User provided content like text data, csv data as a string
- * message to provide context & potentially improve the quality of the response. -
- * `instructions`: User specific text instructions sent to AI system for processing
- * the query. Additional optional parameters include: - `limit_relevant_questions`:
- * Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. -
- * `bypass_cache`: If set to true, forces fresh computation instead of returning
- * cached results. If the API request is successful, ThoughtSpot returns a list of relevant
- * analytical queries, each aligned with the user's original question. Each returned
- * question includes the query string, along with the identifier and name of the corresponding
- * data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes
- * may be introduced before the endpoint is made Generally Available. > * This endpoint
- * requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
- *
- * @param getRelevantQuestionsRequest (required)
+ *
+ * Version: 10.13.0.cl or later Breaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata. To use this API, the user must have at least view-level access to the referenced metadata objects. #### Usage guidelines To accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`. You can further enhance the quality and precision of breakdown by providing additional `ai_context` such as: - `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. - `instructions`: User specific text instructions sent to AI system for processing the query. Additional optional parameters include: - `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. - `bypass_cache`: If set to true, forces fresh computation instead of returning cached results. If the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ * @param getRelevantQuestionsRequest (required)
* @return ApiResponse<EurekaGetRelevantQuestionsResponse>
- * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
- * response body
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
- *
- *
Response Details
- *
Status Code
Description
Response Headers
- *
200
Common successful response
-
- *
201
Common error response
-
- *
400
Operation failed
-
- *
500
Operation failed
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public ApiResponse getRelevantQuestionsWithHttpInfo(
- GetRelevantQuestionsRequest getRelevantQuestionsRequest) throws ApiException {
- okhttp3.Call localVarCall =
- getRelevantQuestionsValidateBeforeCall(getRelevantQuestionsRequest, null);
- Type localVarReturnType = new TypeToken() {}.getType();
+ public ApiResponse getRelevantQuestionsWithHttpInfo(GetRelevantQuestionsRequest getRelevantQuestionsRequest) throws ApiException {
+ okhttp3.Call localVarCall = getRelevantQuestionsValidateBeforeCall(getRelevantQuestionsRequest, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
return localVarApiClient.execute(localVarCall, localVarReturnType);
}
/**
- * (asynchronously) Version: 10.13.0.cl or later Breaks down a user-submitted query into a
- * series of analytical sub-questions using relevant contextual metadata. To use this API, the
- * user must have at least view-level access to the referenced metadata objects. #### Usage
- * guidelines To accurately generate relevant questions, the request must include at least one
- * of the following metadata identifiers within `metadata_context` :
- * `conversation_identifier`, `answer_identifiers`,
- * `liveboard_identifiers`, or `data_source_identifiers`. You can further
- * enhance the quality and precision of breakdown by providing additional `ai_context`
- * such as: - `content`: User provided content like text data, csv data as a string
- * message to provide context & potentially improve the quality of the response. -
- * `instructions`: User specific text instructions sent to AI system for processing
- * the query. Additional optional parameters include: - `limit_relevant_questions`:
- * Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. -
- * `bypass_cache`: If set to true, forces fresh computation instead of returning
- * cached results. If the API request is successful, ThoughtSpot returns a list of relevant
- * analytical queries, each aligned with the user's original question. Each returned
- * question includes the query string, along with the identifier and name of the corresponding
- * data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes
- * may be introduced before the endpoint is made Generally Available. > * This endpoint
- * requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
- *
- * @param getRelevantQuestionsRequest (required)
+ * (asynchronously)
+ * Version: 10.13.0.cl or later Breaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata. To use this API, the user must have at least view-level access to the referenced metadata objects. #### Usage guidelines To accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`. You can further enhance the quality and precision of breakdown by providing additional `ai_context` such as: - `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. - `instructions`: User specific text instructions sent to AI system for processing the query. Additional optional parameters include: - `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified. - `bypass_cache`: If set to true, forces fresh computation instead of returning cached results. If the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.
+ * @param getRelevantQuestionsRequest (required)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
- * @throws ApiException If fail to process the API call, e.g. serializing the request body
- * object
+ * @throws ApiException If fail to process the API call, e.g. serializing 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
-
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
*/
- public okhttp3.Call getRelevantQuestionsAsync(
- GetRelevantQuestionsRequest getRelevantQuestionsRequest,
- final ApiCallback _callback)
- throws ApiException {
-
- okhttp3.Call localVarCall =
- getRelevantQuestionsValidateBeforeCall(getRelevantQuestionsRequest, _callback);
- Type localVarReturnType = new TypeToken() {}.getType();
+ public okhttp3.Call getRelevantQuestionsAsync(GetRelevantQuestionsRequest getRelevantQuestionsRequest, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = getRelevantQuestionsValidateBeforeCall(getRelevantQuestionsRequest, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
/**
* Build call for queryGetDecomposedQuery
- *
- * @param queryGetDecomposedQueryRequest (required)
+ * @param queryGetDecomposedQueryRequest (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
-
- *
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
* @deprecated
*/
@Deprecated
- public okhttp3.Call queryGetDecomposedQueryCall(
- QueryGetDecomposedQueryRequest queryGetDecomposedQueryRequest,
- final ApiCallback _callback)
- throws ApiException {
+ public okhttp3.Call queryGetDecomposedQueryCall(QueryGetDecomposedQueryRequest queryGetDecomposedQueryRequest, final ApiCallback _callback) throws ApiException {
String basePath = null;
// Operation Servers
- String[] localBasePaths = new String[] {};
+ String[] localBasePaths = new String[] { };
// Determine Base Path to Use
- if (localCustomBaseUrl != null) {
+ if (localCustomBaseUrl != null){
basePath = localCustomBaseUrl;
- } else if (localBasePaths.length > 0) {
+ } else if ( localBasePaths.length > 0 ) {
basePath = localBasePaths[localHostIndex];
} else {
basePath = null;
@@ -922,167 +699,285 @@ public okhttp3.Call queryGetDecomposedQueryCall(
Map localVarCookieParams = new HashMap();
Map localVarFormParams = new HashMap();
- final String[] localVarAccepts = {"application/json"};
+ 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);
+ 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);
+ String[] localVarAuthNames = new String[] { "bearerAuth" };
+ return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@Deprecated
@SuppressWarnings("rawtypes")
- private okhttp3.Call queryGetDecomposedQueryValidateBeforeCall(
- QueryGetDecomposedQueryRequest queryGetDecomposedQueryRequest,
- final ApiCallback _callback)
- throws ApiException {
+ private okhttp3.Call queryGetDecomposedQueryValidateBeforeCall(QueryGetDecomposedQueryRequest queryGetDecomposedQueryRequest, final ApiCallback _callback) throws ApiException {
// verify the required parameter 'queryGetDecomposedQueryRequest' is set
if (queryGetDecomposedQueryRequest == null) {
- throw new ApiException(
- "Missing the required parameter 'queryGetDecomposedQueryRequest' when calling"
- + " queryGetDecomposedQuery(Async)");
+ throw new ApiException("Missing the required parameter 'queryGetDecomposedQueryRequest' when calling queryGetDecomposedQuery(Async)");
}
return queryGetDecomposedQueryCall(queryGetDecomposedQueryRequest, _callback);
+
}
/**
- * Version: 10.7.0.cl or later
- *
- * @param queryGetDecomposedQueryRequest (required)
+ *
+ * Version: 10.7.0.cl or later
+ * @param queryGetDecomposedQueryRequest (required)
* @return EurekaDecomposeQueryResponse
- * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
- * response body
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
- *
- *
Response Details
- *
Status Code
Description
Response Headers
- *
200
Common successful response
-
- *
201
Common error response
-
- *
400
Operation failed
-
- *
500
Operation failed
-
- *
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
* @deprecated
*/
@Deprecated
- public EurekaDecomposeQueryResponse queryGetDecomposedQuery(
- QueryGetDecomposedQueryRequest queryGetDecomposedQueryRequest) throws ApiException {
- ApiResponse localVarResp =
- queryGetDecomposedQueryWithHttpInfo(queryGetDecomposedQueryRequest);
+ public EurekaDecomposeQueryResponse queryGetDecomposedQuery(QueryGetDecomposedQueryRequest queryGetDecomposedQueryRequest) throws ApiException {
+ ApiResponse localVarResp = queryGetDecomposedQueryWithHttpInfo(queryGetDecomposedQueryRequest);
return localVarResp.getData();
}
/**
- * Version: 10.7.0.cl or later
- *
- * @param queryGetDecomposedQueryRequest (required)
+ *
+ * Version: 10.7.0.cl or later
+ * @param queryGetDecomposedQueryRequest (required)
* @return ApiResponse<EurekaDecomposeQueryResponse>
- * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
- * response body
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
- *
- *
Response Details
- *
Status Code
Description
Response Headers
- *
200
Common successful response
-
- *
201
Common error response
-
- *
400
Operation failed
-
- *
500
Operation failed
-
- *
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
* @deprecated
*/
@Deprecated
- public ApiResponse queryGetDecomposedQueryWithHttpInfo(
- QueryGetDecomposedQueryRequest queryGetDecomposedQueryRequest) throws ApiException {
- okhttp3.Call localVarCall =
- queryGetDecomposedQueryValidateBeforeCall(queryGetDecomposedQueryRequest, null);
- Type localVarReturnType = new TypeToken() {}.getType();
+ public ApiResponse queryGetDecomposedQueryWithHttpInfo(QueryGetDecomposedQueryRequest queryGetDecomposedQueryRequest) throws ApiException {
+ okhttp3.Call localVarCall = queryGetDecomposedQueryValidateBeforeCall(queryGetDecomposedQueryRequest, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
return localVarApiClient.execute(localVarCall, localVarReturnType);
}
/**
- * (asynchronously) Version: 10.7.0.cl or later
- *
- * @param queryGetDecomposedQueryRequest (required)
+ * (asynchronously)
+ * Version: 10.7.0.cl or later
+ * @param queryGetDecomposedQueryRequest (required)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
- * @throws ApiException If fail to process the API call, e.g. serializing the request body
- * object
+ * @throws ApiException If fail to process the API call, e.g. serializing 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
-
- *
- *
+
+
Response Details
+
Status Code
Description
Response Headers
+
200
Common successful response
-
+
201
Common error response
-
+
400
Operation failed
-
+
500
Operation failed
-
+
* @deprecated
*/
@Deprecated
- public okhttp3.Call queryGetDecomposedQueryAsync(
- QueryGetDecomposedQueryRequest queryGetDecomposedQueryRequest,
- final ApiCallback _callback)
- throws ApiException {
-
- okhttp3.Call localVarCall =
- queryGetDecomposedQueryValidateBeforeCall(
- queryGetDecomposedQueryRequest, _callback);
- Type localVarReturnType = new TypeToken() {}.getType();
+ public okhttp3.Call queryGetDecomposedQueryAsync(QueryGetDecomposedQueryRequest queryGetDecomposedQueryRequest, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = queryGetDecomposedQueryValidateBeforeCall(queryGetDecomposedQueryRequest, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ 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
+